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标准库os.path包、glob包使用实例
Nov 25 Python
在Docker上开始部署Python应用的教程
Apr 17 Python
Python使用lxml模块和Requests模块抓取HTML页面的教程
May 16 Python
Python学习小技巧之利用字典的默认行为
May 20 Python
Python3生成手写体数字方法
Jan 30 Python
Python变量赋值的秘密分享
Apr 03 Python
基于Python中numpy数组的合并实例讲解
Apr 04 Python
ubuntu17.4下为python和python3装上pip的方法
Jun 12 Python
python中的协程深入理解
Jun 10 Python
python面试题之列表声明实例分析
Jul 08 Python
使用python从三个角度解决josephus问题的方法
Mar 27 Python
Python爬虫之Selenium实现键盘事件
Dec 04 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写的MySQL数据库用户认证系统代码
2007/03/22 PHP
ThinkPHP中html:list标签用法分析
2016/01/09 PHP
phpstudy2020搭建站点的实现示例
2020/10/30 PHP
jquery获取table中的某行全部td的内容方法
2013/03/08 Javascript
jQuery Easyui学习之datagrid 动态添加、移除editor
2016/01/27 Javascript
js鼠标单击和双击事件冲突问题的快速解决方法
2016/07/11 Javascript
JavaScript仿微博输入框效果(案例分析)
2016/12/06 Javascript
BootStrap组件之进度条的基本用法
2017/01/19 Javascript
react-native DatePicker日期选择组件的实现代码
2017/09/12 Javascript
nodejs项目windows下开机自启动的方法
2017/11/22 NodeJs
javascript实现Emrips反质数枚举的示例代码
2017/12/06 Javascript
React Native日期时间选择组件的示例代码
2018/04/27 Javascript
Angular ui-roter 和AngularJS 通过 ocLazyLoad 实现动态(懒)加载模块和依赖
2018/11/25 Javascript
vue实现菜单切换功能
2019/05/08 Javascript
深入了解JavaScript 私有化
2019/05/30 Javascript
vue实现侧边栏导航效果
2019/10/21 Javascript
基于JavaScript实现简单扫雷游戏
2021/01/02 Javascript
[01:02:00]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第三场 1月24日
2021/03/11 DOTA
Python利用ansible分发处理任务
2015/08/04 Python
使用Python从有道词典网页获取单词翻译
2016/07/03 Python
Python抓取框架 Scrapy的架构
2016/08/12 Python
python机器学习理论与实战(四)逻辑回归
2018/01/19 Python
Python selenium实现微博自动登录的示例代码
2018/05/16 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
2020/05/16 Python
Python爬虫抓取指定网页图片代码实例
2020/07/24 Python
世界上最好的威士忌和烈性酒购买网站:The Whisky Exchange
2016/11/20 全球购物
美国波道夫·古德曼百货官网:Bergdorf Goodman
2017/11/07 全球购物
Clarria化妆品官方网站:购买天然和有机化妆品系列
2018/04/08 全球购物
世界上最值得信赖的多日游在线市场:TourRadar
2018/07/20 全球购物
买卖正宗运动鞋:GOAT
2019/12/06 全球购物
什么是类的返射机制
2016/02/06 面试题
招聘与培训专员岗位职责
2014/01/30 职场文书
青年志愿者活动方案
2014/08/17 职场文书
MySQL读取JSON转换的方式
2022/03/18 MySQL
vue postcss-px2rem 自适应布局
2022/05/15 Vue.js