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的id()函数解密过程
Dec 25 Python
python 从远程服务器下载东西的代码
Feb 10 Python
python批量导出导入MySQL用户的方法
Nov 15 Python
浅析PHP与Python进行数据交互
May 15 Python
Python使用pyodbc访问数据库操作方法详解
Jul 05 Python
python 3.6.5 安装配置方法图文教程
Sep 18 Python
python实现顺时针打印矩阵
Mar 02 Python
Python3网络爬虫中的requests高级用法详解
Jun 18 Python
python写入数据到csv或xlsx文件的3种方法
Aug 23 Python
wxPython实现文本框基础组件
Nov 18 Python
python 读写文件包含多种编码格式的解决方式
Dec 20 Python
python利用proxybroker构建爬虫免费IP代理池的实现
Feb 21 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
给海燕B411配件机起死回生配上件
2021/03/02 无线电
ThinkPHP模板范围判断输出In标签与Range标签用法详解
2014/06/30 PHP
php使用Jpgraph绘制简单X-Y坐标图的方法
2015/06/10 PHP
ThinkPHP使用Ueditor的方法详解
2016/05/20 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
硬盘浏览程序,保存成网页格式便可使用
2006/12/03 Javascript
JS 动态获取节点代码innerHTML分析 [IE,FF]
2009/11/30 Javascript
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
2010/04/13 Javascript
jquery学习笔记 用jquery实现无刷新登录
2011/08/08 Javascript
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
JavaScript模板入门介绍
2012/09/26 Javascript
innerHTML与jquery里的html()区别介绍
2012/10/12 Javascript
javascript查找字符串中出现最多的字符和次数的小例子
2013/10/29 Javascript
js获取上传文件的绝对路径实现方法
2016/08/02 Javascript
Angular设置title信息解决SEO方面存在问题
2016/08/19 Javascript
详解nodejs 文本操作模块-fs模块(三)
2016/12/22 NodeJs
node.js中express中间件body-parser的介绍与用法详解
2017/05/23 Javascript
vue-resouce设置请求头的三种方法
2017/09/12 Javascript
Vue实现数字输入框中分割手机号码的示例
2017/10/10 Javascript
使用node.JS中的url模块解析URL信息
2020/02/06 Javascript
jQuery使用jsonp实现百度搜索的示例代码
2020/07/08 jQuery
Python 的描述符 descriptor详解
2016/02/27 Python
Python栈算法的实现与简单应用示例
2017/11/01 Python
对python多线程与global变量详解
2018/11/09 Python
Scrapy框架爬取西刺代理网免费高匿代理的实现代码
2019/02/22 Python
python实现网站用户名密码自动登录功能
2019/08/09 Python
Python处理PDF与CDF实例
2020/02/26 Python
python中requests模拟登录的三种方式(携带cookie/session进行请求网站)
2020/11/17 Python
好莱坞百老汇御用王牌美妆:Koh Gen Do 江原道
2018/04/03 全球购物
应届生服装设计自我评价
2013/09/20 职场文书
家具商场的活动方案
2014/08/16 职场文书
乡文化站暑期培训方案
2014/08/28 职场文书
护士个人总结范文
2015/02/13 职场文书
职工宿舍管理制度
2015/08/05 职场文书
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
2022/04/14 Python
vue里使用create, mounted调用方法
2022/04/26 Vue.js