python接口测试返回数据为字典取值方式


Posted in Python onFebruary 12, 2022

接口测试返回数据为字典取值

接口测试通常需要校验返回数据跟预期结果是否一致,这个时候如果返回数据为字典,那么我们要拿到我们想要的key对应的values时,需巧妙的运用dict.keys()、dict.values()和for循环,以及列表相关知识点。

实例

这是我调接口返回的数据,该数据为dict类型,我的目标是要拿到account。

#接口返回的数据:
api_result = {'code': '000001', 
'dataMap': {'data': 
{'amount': 0, 'billingWeight': 0, 'quantity': 0}},
 'failureString': '', 'failures': [], 
 'flag': 'success', 'hasError': False, 'message': '请求成功'}

方法

#方法1:
print("这是方法1")
for i in api_result.keys():
    if i == 'dataMap':
        print(api_result[i]['data']['amount'])
#方法2:
print("这是方法2")
getkey = api_result.get('dataMap')
# print(getkey)
cc =list(getkey.values())[0]
print(cc['amount'])
#方法3:
print("这是方法3")
print(api_result['dataMap']['data']['amount'])

运行结果

python接口测试返回数据为字典取值方式

本次介绍了三个方法,一个循环,一个利用keys()和values(),另外一个直接嵌套取key对应的值。当然大家可以看出来,最后一种方法是最快最简单的。

python接口测试--sign签名

最近测试的项目由于需要给第三方调用,所以增加了安全性的认证,所有的接口调用都需要签名进行验签,

于是研究了一下使用python按照接口签名规范生成sign值。

接口签名规范

1、请求参数中的 sign 参数和为空的参数去除后,剩余的多个键值对,将键按照字典序排序,

并以key1=value1&key2=value2的格式拼成一个字符串

2、拼接的字符串需要URLEncode

3、将开发者的key拼接在第一步中排序后的字符串后面得到待签名字符串

4、使用md5算法加密待加密字符串并转为大写即为sign

实现代码

下面为实现的 代码片。

import time
import requests
import  json
import urllib,hashlib
url = "http://www.xxx.xx"
#获取当前的时间戳
stamp = time.time()
print(stamp)
#转换为int类型的13位时间戳
timestam = int(round(stamp*1000))
print(timestam)
time_new = str(timestam)
print(type(time_new))
data ={
    'appId':'3301820001',
    "outTradeNo":"20201026001",
    "amount":"100",
    "body":"test",
    "timestamp":time_new,
    "notifyUrl":"http://localhost:8080/notify",
}
#将键按照字典序排序
data_order = sorted(data.items(),key=lambda x:x[0],reverse=False)
#将列表转化为字典
data_new = dict(data_order)
print(data_new)
#将key=value键值对进行url编码
datanew = urllib.parse.urlencode(data_new)
datadic = datanew + "&key=BF1BDE5A649724056F904A9335B1C1C7455655"
print(datadic)
#创建md5对象
m = hashlib.md5()
m= hashlib.md5(datadic.encode())
data_md5 = m.hexdigest()
#将小写字母切换为大写字母
sign=data_md5.upper()
print(sign)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python ORM框架SQLAlchemy学习笔记之关系映射实例
Jun 10 Python
Python将xml和xsl转换为html的方法
Mar 10 Python
10款最好的Web开发的 Python 框架
Mar 18 Python
Python 3.x 新特性及10大变化
Jun 12 Python
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
Jun 28 Python
详解python中Numpy的属性与创建矩阵
Sep 10 Python
python实现词法分析器
Jan 31 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
Jun 09 Python
如何在python中处理配置文件代码实例
Sep 27 Python
python 如何引入协程和原理分析
Nov 30 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
Dec 18 Python
python中scipy.stats产生随机数实例讲解
Feb 19 Python
Python socket如何解析HTTP请求内容
Feb 12 #Python
python全面解析接口返回数据
Feb 12 #Python
http通过StreamingHttpResponse完成连续的数据传输长链接方式
Feb 12 #Python
python中出现invalid syntax报错的几种原因分析
Feb 12 #Python
python ConfigParser库的使用及遇到的坑
Feb 12 #Python
Python制作春联的示例代码
Jan 22 #Python
Python制作表白爱心合集
You might like
PHP获取网卡地址的代码
2008/04/09 PHP
Javascript - HTML的request类
2007/01/09 Javascript
为jQuery.Treeview添加右键菜单的实现代码
2010/10/22 Javascript
jquery移动listbox的值原理及代码
2013/05/03 Javascript
原生js实现复制对象、扩展对象 类似jquery中的extend()方法
2014/08/30 Javascript
jquery图片播放浏览插件prettyPhoto使用详解
2014/12/19 Javascript
JavaScript基于自定义函数判断变量类型的实现方法
2016/11/23 Javascript
基于JavaScript实现自定义滚动条
2017/01/25 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
2017/03/10 Javascript
手机端转换rem适应
2017/04/01 Javascript
全面解析Node.js 8 重要功能和修复
2017/06/02 Javascript
angular基于ng-alain定义自己的select组件示例
2018/02/23 Javascript
解决vue-quill-editor上传内容由于图片是base64的导致字符太长的问题
2018/08/20 Javascript
JS canvas绘制五子棋的棋盘
2020/05/28 Javascript
JS运算符简单用法示例
2020/01/19 Javascript
一行JavaScript代码如何实现瀑布流布局
2020/12/11 Javascript
给Python初学者的一些编程技巧
2015/04/03 Python
python入门基础之用户输入与模块初认识
2016/11/14 Python
python3.5实现socket通讯示例(TCP)
2017/02/07 Python
Python使用回溯法子集树模板解决爬楼梯问题示例
2017/09/08 Python
python代理工具mitmproxy使用指南
2019/07/04 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
2019/08/06 Python
解决Python spyder显示不全df列和行的问题
2020/04/20 Python
Django设置Postgresql的操作
2020/05/14 Python
python语音识别指南终极版(有这一篇足矣)
2020/09/09 Python
使用HTML5的链接预取功能(link prefetching)给网站提速
2012/12/13 HTML / CSS
英国内衣连锁店:Boux Avenue
2018/01/24 全球购物
电大自我鉴定
2013/10/27 职场文书
详细的大学生创业计划书模板
2014/01/27 职场文书
师范毕业生求职信
2014/07/11 职场文书
社会工作专业求职信
2014/07/15 职场文书
学习张丽丽心得体会
2014/09/03 职场文书
学习十八届四中全会依法治国心得体会
2014/11/03 职场文书
2014年消防工作总结
2014/11/21 职场文书
2014年工人工作总结
2014/11/25 职场文书
浅谈Node的内存泄露问题
2022/05/06 NodeJs