此篇分享,献给我既爱又恨的自家公司的接口。在自学接口自动化测试中,这个Json参数格式的post请求,我爬了整整4天的坑,害的我中间过周末也头大。【这部分后面会分享】
个人博客:https://blog.csdn.net/zyooooxie
(一)POST请求-application/json
此次分享主要讲的是Content-Type设置为application/json的POST请求,即以序列号JSON数据的形式提交的post请求。
此种json格式的参数和值 写成 { “key1”:“value1”, “key2”:“value2”}。
最好先学习简单的JSON编写知识【JMeter本身是不能对Json进行格式校验的】
JMeter访问此post请求【设置了断言】
A. 添加信息头管理。配置元件》 HTTP信息头管理器
B.在信息头编辑页面,输入content-type application/json
C.http请求,Body Data中输入json格式的参数
D.响应信息
E.请求信息
Postman访问此post请求【设置了断言】
A.把请求数据放在Body中;选择RAW;选择JSON[application/json];输入json格式的参数数据
B.Headers自动做了添加。
C.断言设置和实际的响应体
Requsets库 自动化测试访问此post请求【设置了断言,打印了很多信息】
最推荐的:直接使用json关键字来传参数,会被自动编码
(二)Fiddler抓包验证
Pycharm脚本中的三个请求发送后,使用Fiddler抓包,结果如下:
【Raw】
A.对应用例的代码:r_data = requests.post(url_1, json=t_dict)
B.对应用例的代码: r_data = requests.post(url_1, data=json.dumps(t_dict))
C.对应用例的代码: r_data = requests.post(url_1, data=demjson.encode(t_dict))
关于请求中的些许差别【在请求头中 多了一个Content-Type: application/json】,具体原理我也不甚懂;这儿主要是想展示下这些原始数据。
后面的请求头、响应体及JSON只展示第一个;
【请求头、响应头】
【请求的参数、响应的内容】
交流技术 欢迎+QQ 153132336 zy
个人博客 https://blog.csdn.net/zyooooxie