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脚本日志功能
Aug 14 Python
Python模拟随机游走图形效果示例
Feb 06 Python
一篇文章读懂Python赋值与拷贝
Apr 19 Python
python解决js文件utf-8编码乱码问题(推荐)
May 02 Python
Python实现获取邮箱内容并解析的方法示例
Jun 16 Python
python 利用for循环 保存多个图像或者文件的实例
Nov 09 Python
基于OpenCV python3实现证件照换背景的方法
Mar 22 Python
python之当你发现QTimer不能用时的解决方法
Jun 21 Python
python 提取文件指定列的方法示例
Aug 07 Python
Python处理PDF与CDF实例
Feb 26 Python
python 写函数在一定条件下需要调用自身时的写法说明
Jun 01 Python
解决numpy和torch数据类型转化的问题
May 23 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之sphinx
2013/05/15 PHP
php动态读取数据清除最右边距的方法
2017/04/12 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
基于jquery的loading效果实现代码
2010/11/05 Javascript
jQuery判断复选框是否勾选的原理及示例
2014/05/21 Javascript
实现js保留小数点后N位的代码
2014/11/13 Javascript
javascript 闭包详解
2015/02/15 Javascript
JavaScript脚本库编写的方法
2015/12/09 Javascript
微信小程序  生命周期详解
2016/10/27 Javascript
JavaScript数组复制详解
2017/02/02 Javascript
ES6中Math对象的部分扩展
2017/02/20 Javascript
bootstrap表单示例代码分享
2017/05/18 Javascript
vue两个组件间值的传递或修改方式
2018/07/04 Javascript
详解JavaScript中的函数、对象
2019/04/01 Javascript
layui 富文本图片上传接口与普通按钮 文件上传接口的例子
2019/09/23 Javascript
vscode 使用Prettier插件格式化配置使用代码详解
2020/08/10 Javascript
js代码编写无缝轮播图
2020/09/13 Javascript
[10:54]Team Spirit vs Navi
2018/06/07 DOTA
Python内置函数的用法实例教程
2014/09/08 Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
2019/04/28 Python
如何表示python中的相对路径
2020/07/08 Python
python和C++共享内存传输图像的示例
2020/10/27 Python
Python+MySQL随机试卷及答案生成程序的示例代码
2021/02/01 Python
anaconda升级sklearn版本的实现方法
2021/02/22 Python
玉兰油美国官网:OLAY美国
2018/10/25 全球购物
在家更换处方镜片:Lensabl
2019/05/01 全球购物
波兰珠宝品牌:YES
2019/08/09 全球购物
物业管理计划书
2014/01/10 职场文书
市场营销职业生涯规划书范文
2014/01/12 职场文书
社区母亲节活动方案
2014/03/05 职场文书
詹天佑教学反思
2014/04/30 职场文书
2014年医生工作总结
2014/11/21 职场文书
退休职工欢送会致辞
2015/08/01 职场文书
先进个人事迹材料(2016推荐版)
2016/03/01 职场文书
2016年小学教师师德承诺书
2016/03/25 职场文书
《家》读后感:万惜拯救,冷暖自知
2019/09/25 职场文书