原本以为是a piece of cake,深挖下,结果自己越跑越远;
所幸有些收获,但不见得准确,希望大家多多指正。
JSON格式的POST请求在利用Requests库在用三种方法传递参数时出现了新问题,有2种是400 Bad Request,即我传的(Requests转化完的)JSON数据有问题。
这篇分享:POST请求方法之content-type:content-type:application/json
个人博客:https://blog.csdn.net/zyooooxie
如果不懂我在讲什么鬼,可以先了解下
JMeter访问此post请求【设置了断言】
查看抓包的数据
Postman访问此post请求【设置了断言】
查看抓包的数据
Requsets库 成功访问此post请求【设置了断言,打印了很多信息】
{“参数名1”:[“值1”,“值2”,“值3”]}
查看抓包的数据
Requsets库 失败访问此post请求
[(“参数名1”,“值1”),(“参数名1”,“值2”),(“参数名1”,“值3”)] 失败!!!
((“参数名1”,“值1”),(“参数名1”,“值2”),(“参数名1”,“值3”)) 失败!!!
我手头上没有这样的接口来实践,只能暂时得出这样的结论
查看抓包的数据
【前三个】
【后三个】
这儿也就不展示Fiddler抓取这6个请求的数据了,和上面两张图一样的;
后面我又尝试了,还是都失败。就是说,如果Post请求的编码格式是JSON,你又要给某个参数传多个值的时候,你需要的是类似这样: {“name”:[“zyooooxie”,“zy”,“xie”,“oooo”],“city”:“SZ”},完全符合JSON格式的语句;
在线校验JSON格式
其实已经计划这篇分享把 POST请求方法之content-type:multipart/form-data也并做一起分享,Requests简单的用例也写好了,但今天确实累了。我一直想做一期博客分享 关于上传多个文件,所以下周再来分享
交流技术 欢迎+QQ 153132336 zy
个人博客
https://blog.csdn.net/zyooooxie
背景:2017年入职一家p2p行业的互联网公司,被领导介绍使用
postman
做
接口测试
,本人习惯性使用
JMeter
做
接口测试
,当然这个工具听说过,开发者常用来调试接口。但当时公司的同事大多使用
postman
的功能有限,例如没有实现集成自动化环境(newman)、没有购买其收费版实现性能测试的接口监听、只使用到其中的collections功能,但是有
一个
使用缺陷,做接口不那么方便,即两个接口之间的关联性,如请求下
一个
接口需要上
一个
接口响应的token时,只能先请求一次,得到token
值
,再copy返回的token,拼接到下
一个
接口的请求
参数
中,完成
接口测试
;如此即为不方便,从而导致效率不高。为此
第一步:创建请求
第二步:为此请求创建单独的文件夹,循环是针对此文件夹
第
三
步:准备动态
参数
文件,可以是txt,csv,json等,此处是txt,
多个
参数
,建议用json
第四步:点击 Run collection,进入配置
参数
页
postman
是
一个
非常好用的
接口测试
工具,而且功能也很强大,今天只简单说一下使用
postman
如何对
一个
接口
传
入大批量
参数
进行测试的方法。
以我测试的平台为例,我们的平台是做在线教育平台的,我模拟的场景是老师有一门课叫ABC,现在需要有1000个学生加入ABC这门课。我们不可能手动操作1000次,所以这个时候就需要借助工具。假如说学生加入ABC这门课程的接口是这样的:https://hhhh.com/addstu/addcourse
其中的
参数
学生uuid是这个接口需要的
参数
之一,调用这个接口之后学生
第二步:添加变量名称,设置对应的变量
值
,保存;
第
三
步:接口地址或者需要取
值
的
参数
value设置;注意需要取
值
的设置为{{变量名}},双大括号,即可取全局变量设置的
值
。
TIPS:
如果需要批量修改接口
参数
等,可导出后编辑,批量替换,再导入即可,注意需要修改接口地址以及下方的
参数
取
值
。
2 接口返回
值
存入环境变量
第一步:查看接口返回
值
;
"data": {
"leaguerId": "161",
"token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxNjEiLCJjcmVhdGVkIjoxNTI5NTcyNTkzMTI5LCJleHAiOjE1Mjk1Nzk3OTN9.U6qmR-Qa9sJpwxShLOC8WLPBlhLxWWiQTv5bZtyOV0mdyCSHnFBb_p6T5PBY20m_0m2AmrQZGfrv6hvHCPAaow"
"status": 200
第二步:在接口的TESTS页签中输入以下内容(视返回
值
情况修改):
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
// 把responseBody转为json字符串
var Jsondata = JSON.parse(responseBody);
// 设置环境变量access-token,供后面的接口引用
pm.environment.set("access-token ", Jsondata.data.token );
第
三
步:重新发送上
一个
接口的
参数
信息测试,执行后查看环境变量;如图,则表示环境变量的
值
已经正常存储;
3
参数
化取其他接口的返回
值
第一步:修改需要引用上述token
值
的接口
参数
取
值
,
参数
值
value设置为{{access-token}}({{变量名}}),测试接口,正确返回即可;
目录一、快速创建mapper文件二、parameterType
三
、MyBatis
传
递
参数
1.
一个
简单
参数
(掌握)2.
多个
参数
- 使用@Param(掌握)3.
多个
参数
-使用对象(掌握)4.
多个
参数
-按位置(了解)5.
多个
参数
- 使用 Map(了解)6. # 和 $(重点)四、总结1.
参数
2. # 和 $ 的区别一、快速创建mapper文件
由于每个接口都要创建
一个
对应的map...
接手
一个
前后端分离的项目,我手上只有后端的代码,以及前端的测试环境
这个时候碰到问题,需要调试,我使用
postman
在页面选好数据后,保存前打开F12,保存时就可以看到Network中调用的方法和
传
递的
参数
然后看到
传
给后台的是
一个
个
参数
,大概近百个,这调试总不能
一个
个复制到
postman
吧,头皮发麻,
所以去百度了,结果没看到有人提问,那这说明大家应该有别的方法轻松解决,试了很久,还真找到了
复制form data中的数据
然后在
postman
中,点击bulk edit,就可
JMeter
正则表达式提取器可以提取
多个
值
,只需要在正则表达式中使用分组符号"()"来分组,每个分组对应
一个
提取的变量名。例如,如果要从响应中提取两个
值
,可以使用如下正则表达式:
"firstValue=(\d+)&secondValue=(\w+)"
其中,"(\d+)"表示匹配
一个
或
多个
数字,"(\w+)"表示匹配
一个
或
多个
字母或数字。在提取器中,分别设置变量名为"firstValue"和"secondValue"即可。