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 getopt模块处理命令行选项实例
May 13 Python
python实现的用于搜索文件并进行内容替换的类实例
Jun 28 Python
python解决网站的反爬虫策略总结
Oct 26 Python
浅谈终端直接执行py文件,不需要python命令
Jan 23 Python
异步任务队列Celery在Django中的使用方法
Jun 07 Python
使用python实现ftp的文件读写方法
Jul 02 Python
对Django的restful用法详解(自带的增删改查)
Aug 28 Python
使用Python发现隐藏的wifi
Mar 04 Python
python如何求100以内的素数
May 27 Python
Python unittest如何生成HTMLTestRunner模块
Sep 08 Python
python3爬虫中多线程的优势总结
Nov 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
从一个不错的留言本弄的mysql数据库操作类
2007/09/02 PHP
浅析PHP文件下载原理
2014/12/25 PHP
php通过淘宝API查询IP地址归属等信息
2015/12/25 PHP
thinkPHP实现多字段模糊匹配查询的方法
2016/12/01 PHP
laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
2019/10/08 PHP
PHP实现简单日历类编写
2020/08/28 PHP
Javascript 刷新全集常用代码
2009/11/22 Javascript
js阻止默认事件与js阻止事件冒泡示例分享 js阻止冒泡事件
2014/01/27 Javascript
JQuery选择器、过滤器大整理
2015/05/26 Javascript
JavaScript开发者必备的10个Sublime Text插件
2016/02/27 Javascript
jquery弹出遮掩层效果【附实例代码】
2016/04/28 Javascript
浅析JavaScript中的对象类型Object
2016/05/26 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
2016/06/10 Javascript
浅谈jquery页面初始化的4种方式
2016/11/27 Javascript
详解Angular CLI + Electron 开发环境搭建
2017/07/20 Javascript
在vue中使用express-mock搭建mock服务的方法
2018/11/07 Javascript
Vue实现一个无限加载列表功能
2018/11/13 Javascript
JavaScript之Blob对象类型的具体使用方法
2019/11/29 Javascript
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
python监控网站运行异常并发送邮件的方法
2015/03/13 Python
python实现对指定字符串补足固定长度倍数截断输出的方法
2018/11/15 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
2019/01/04 Python
Python实现将字符串的首字母变为大写,其余都变为小写的方法
2019/06/11 Python
浅谈Python小波分析库Pywavelets的一点使用心得
2019/07/09 Python
Python+OpenCV 实现图片无损旋转90°且无黑边
2019/12/12 Python
Belle Maison倍美丛官网:日本千趣会旗下邮购网站
2016/07/22 全球购物
澳大利亚领先的宠物用品商店:VetSupply
2017/09/08 全球购物
门卫工作岗位职责
2013/12/17 职场文书
大学生最新职业生涯规划书范文
2014/01/12 职场文书
行政专员求职信范文
2014/05/03 职场文书
推荐信格式要求
2014/05/09 职场文书
2014年共青团工作总结
2014/12/10 职场文书
三峡大坝导游词
2015/01/31 职场文书
预备党员入党感想
2015/08/10 职场文书
Requests什么的通通爬不了的Python超强反爬虫方案!
2021/05/20 Python
20180830晚上第一届KSL半决赛 雨神vs解冻(二龙 三炮解说)
2022/04/01 星际争霸