在get请求中,参数是直接加在了URL里面,但是当有+、=等特殊字符存在时,可能会出现在服务器端获取不到正确参数值的情况,解决办法:将这些特殊字符转为服务器可以识别的字符,进行URL字符编码
除了大小写英文字母、数字、-_.(横线、下划线、点)之外的其他字符都是特殊字符,需要对特殊字符进行编码
对应关系如下:
对应的URL字符 | 转义之后的代替字符 |
---|---|
空格 | %20 |
: | %3A |
+ | %2B |
? | %3F |
% | %25 |
/ | %2F |
# | %23 |
& | %26 |
= | %3D |
; | %3B |
%XX
是以16进制表示的ASCII
比如传递的参数中有日期,日期格式为2021-08-09 17:30:00
,那么传参的时候就可以转换为2021-08-09%2017%3A30%3A00
在数据库中导出数据可以使用REPLACE函数进行替换,例如
REPLACE(REPLACE(course_date," ","%20"),":","%3A")
也可以使用在线编码方式自行转换:
可以应用在URL、Params、Headers、Body中的form-data、x-www-form-urlencoded、以及raw中的参数值中,使用{{配置的变量名}}即可使用
var data=JSON.parse(responseBody);//获取响应体并解析
var 参数1=data.data.具体的返回参数名1;//不一定是data.data,根据接口返回的实际情况来进行调用
var 参数2=data.data.具体的返回参数名2;//同上
pm.enviroment.set("环境变量名1",参数1);//将拿到的返回值设置成环境变量供后面的接口调用
pm.enviroment.set("环境变量名2",参数2);//将拿到的返回值设置成环境变量供后面的接口调用
接口2中的请求参数就可以直接使用{{环境变量名1}}或者{{环境变量名2}}取得接口1相应的返回值
也可以拿到其他的参数值:
获得header中的参数值:
var header=pm.request.header;
var authorization=header.get("authorization");
如果请求参数是通过params进行设置的,可以通过以下代码获得请求内容的值:
var requestBody=pm.request.url.query;
var userid=requestBody.get("想要获取的请求参数名");
如果请求是通过body的form-data进行传输的,可以通过以下代码获得请求内容的值:
var requestBody=pm.request.body.formdata;
var userid=requestBody.get("想要获取的请求参数名");
可参考pm对象API
也可以进行设置断言,例如:
tests["教师teacherId为:"+teacherId]=teacherId!=null;//断言teacherId不为空
tests["msg"]=msg==="OK";//断言msg的值为Ok
也可以在断言中输出变量的值:
tests["userid为"+userid]=msg==="OK";
上传完毕之后,会自动设置迭代次数,这时可以检查参数文件是否正确(可以进行预览)。之后便可以点击run运行