最近准备写一个公司业务的性能测试脚本,要用jmeter把整个流程的接口全部整合起来,jmeter也是用的很多的一款工具了,但是这次遇到点问题。
公司的接口有些请求方法是put类型的,我以前用jmeter做的大都是get和post,想着应该是一样的,但是接口做好之后,请求一直报某个参数不存在,排除了参数不完整的可能后,详细看了下引起的原因,在此记录下来。
1、因为jmeter不规定参数类型的话,默认是application/x-www-form-urlencoded,所以我没有声明参数类型,正确的参数也请求不到正确的结果。
2、常规的form_data格式,发送的请求数据为空
3、请求的中文参数变为乱码
接下来的是问题的解决方法:
解决方案1:
直接将参数以 key=value&key=value...的形式用?加在url后面,请求可以成功,但是要注意的是,如果参数中有空格或者其他特殊符号,解析会有问题。另外如果参数很长,放在url里面也不美观,可以使用后面2种方法。
解决方案2:
在请求下增加http信息头管理器,设置Content-Type为application/x-www-form-urlencoded
参数放在parameters里面,但是注意,与一般的key对应value不一样,且第二个以后的参数前需要加&连接符,如图
若请求数据中文为乱码,首先设置请求的编码方式为utf-8
如果还是乱码,设置client implementation为JAVA
解决方案3:
在请求下增加http信息头管理器,设置Content-Type为application/x-www-form-urlencoded
参数放在body data里面,以key=value&key=value...的形式组合。
若请求有乱码,和方案2乱码的解决方法一样
至此可以完美进行put方式的接口请求啦!