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使用reportlab画图示例(含中文汉字)
Dec 03 Python
Python线程创建和终止实例代码
Jan 20 Python
python+splinter实现12306网站刷票并自动购票流程
Sep 25 Python
python 实现在tkinter中动态显示label图片的方法
Jun 13 Python
Python如何筛选序列中的元素的方法实现
Jul 15 Python
使用pyinstaller逆向.pyc文件
Dec 20 Python
Python基于Hypothesis测试库生成测试数据
Apr 29 Python
什么是python的必选参数
Jun 21 Python
python实现定时发送邮件到指定邮箱
Dec 23 Python
pandas数据分组groupby()和统计函数agg()的使用
Mar 04 Python
Python经常使用的一些内置函数
Apr 11 Python
解决IDEA翻译插件Translation报错更新TTK失败不能使用
Apr 24 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
可快速识别放射性物质-国外大神教你diy一个开放式辐射探测器
2020/03/12 无线电
PHP5函数小全(分享)
2013/06/06 PHP
通过PHP current函数获取未知字符键名数组第一个元素的值
2013/06/24 PHP
php封装的单文件(图片)上传类完整实例
2016/10/18 PHP
php获取当前月与上个月月初及月末时间戳的方法
2016/12/05 PHP
php简单计算权重的方法示例【适合抽奖类应用】
2019/06/10 PHP
关于文本限制字数的js代码
2007/04/02 Javascript
js字符编码函数区别分析
2008/06/05 Javascript
js实现iframe框架取值的方法(兼容IE,firefox,chrome等)
2015/11/26 Javascript
JavaScript基础语法之js表达式
2016/06/07 Javascript
javascript 中的事件委托详解
2016/10/25 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
2016/12/27 Javascript
JavaScript自动点击链接 防止绕过浏览器访问的方法
2017/01/19 Javascript
JS实现给json数组动态赋值的方法示例
2020/03/19 Javascript
详解微信小程序中的页面代码中的模板的封装
2017/10/12 Javascript
微信小程序外卖选购页实现切换分类与数量加减功能案例
2019/01/15 Javascript
vue-cli3使用 DllPlugin 实现预编译提升构建速度
2019/04/24 Javascript
原生js通过一行代码实现简易轮播图
2019/06/05 Javascript
JS简单表单验证功能完整示例
2020/01/26 Javascript
Python读写Excel文件方法介绍
2014/11/22 Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
2016/04/13 Python
对Python中range()函数和list的比较
2018/04/19 Python
在pycharm上mongodb配置及可视化设置方法
2018/11/30 Python
python用pandas数据加载、存储与文件格式的实例
2018/12/07 Python
python实现简单聊天室功能 可以私聊
2019/07/12 Python
Python (Win)readline和tab补全的安装方法
2019/08/27 Python
python装饰器代码深入讲解
2021/03/01 Python
英国最大的笔记本电脑直销专家:Laptops Direct
2019/07/20 全球购物
荷兰家电购物网站:Expert.nl
2020/01/18 全球购物
设计师个人求职信范文
2014/02/02 职场文书
《老山界》教学反思
2014/04/08 职场文书
实习协议书
2015/01/27 职场文书
春秋淹城导游词
2015/02/11 职场文书
小学教师求职信范文
2015/03/20 职场文书
新郎父亲婚礼致辞
2015/07/27 职场文书
初中英语教学随笔
2015/08/15 职场文书