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迭代器和生成器介绍
Mar 06 Python
pymongo实现控制mongodb中数字字段做加法的方法
Mar 26 Python
python多进程使用及线程池的使用方法代码详解
Oct 24 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
Nov 07 Python
python程序封装为win32服务的方法
Mar 07 Python
linux安装python修改默认python版本方法
Mar 31 Python
python3下载抖音视频的完整代码
Jun 05 Python
Django 路由控制的实现
Jul 17 Python
python实现提取COCO,VOC数据集中特定的类
Mar 10 Python
python中有函数重载吗
May 28 Python
Python调用C语言程序方法解析
Jul 07 Python
史上最详细的Python打包成exe文件教程
Jan 17 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 信息采集程序代码
2009/03/17 PHP
基于PHP实现短信验证码接口(容联运通讯)
2016/09/06 PHP
PHP实现普通hash分布式算法简单示例
2018/08/06 PHP
[原创]图片分页查看
2006/08/28 Javascript
Prototype1.6 JS 官方下载地址
2007/11/30 Javascript
javascript脚本调试方法小结
2008/11/24 Javascript
JavaScript入门教程 Cookies
2009/01/31 Javascript
javascript类继承机制的原理分析
2009/09/12 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
2014/04/16 Javascript
JavaScript检查弹出窗口是否被阻拦的方法技巧
2015/03/13 Javascript
js实现交换运动效果的方法
2015/04/10 Javascript
微信小程序 for 循环详解
2016/10/09 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
2018/05/04 Javascript
JS实现数组的增删改查操作示例
2018/08/29 Javascript
使用 Vue cli 3.0 构建自定义组件库的方法
2019/04/30 Javascript
ES6数组与对象的解构赋值详解
2019/06/14 Javascript
jQuery Datatables 动态列+跨列合并实现代码
2020/01/30 jQuery
[02:36]DOTA2英雄基础教程 斯拉克
2013/11/29 DOTA
理解python多线程(python多线程简明教程)
2014/06/09 Python
python中format()函数的简单使用教程
2018/03/14 Python
Python基于xlrd模块操作Excel的方法示例
2018/06/21 Python
Python设置在shell脚本中自动补全功能的方法
2018/06/25 Python
Appium+Python自动化测试之运行App程序示例
2019/01/23 Python
python统计字符的个数代码实例
2020/02/07 Python
Python基于内置函数type创建新类型
2020/10/22 Python
米兰必去买手店排行榜首位:Antonioli
2016/09/11 全球购物
铭万公司.net面试题笔试题
2014/07/20 面试题
高三毕业生自我鉴定
2013/12/20 职场文书
倡导文明标语
2014/06/16 职场文书
甜品店创业计划书
2014/08/14 职场文书
协会周年庆活动方案
2014/08/26 职场文书
企业整改报告范文
2014/11/08 职场文书
毕业实习指导教师评语
2014/12/31 职场文书
小学班主任工作总结2015
2015/04/07 职场文书
公司管理制度范本
2015/08/03 职场文书
2019销售早会主持词
2019/06/27 职场文书