Jmeter接口测试使用总结
HTTP请求
1.乱码问题(UTF-8):
参数化时请将txt文档以utf-8格式保存,以及将CSV元件处编码选择UTF-8
信息头:Content-Type:application/json;charset=utf-8
http请求时Content encoding=utf-8
bin文件中配置文件jmeter.properties中将格式改为#sampleresult.default.encoding=UTF-8
2.参数化问题(CSV Data Set Config):
application/x-www-form-urlencoded 表单形式提交,${singleId}
application/json json格式提交的在响应的body里同样参数化${singleId}
以txt文件上传,多个参数时以列为单位,以","分隔
3.关联
一般使用后置处理器(json Extractor),json pathexpression($.result.data[0].id),取HTTP响应数据中的一个字段(如ID),传给下一个HTTP请求作为请求参数
4.循环控制器 将需要循环的所有的http请求放在循环控制器下(其他逻辑控制也一样5.if控制器: 编辑if条件语句:"${result.data[*].trace_type}"=="01" && "${result.data[*].userName}"=="gfm" 需放在要执行的HTTP请求前面,当条件为真时执行该HTTP请求,这种情况一般需要forEach循环遍6.foreach: 遍历时使用name,start index for loop,end index for loop 以及一些其他逻辑控制器,如随机控制器,简单控制7.一次控制器 一般在登录部分使用,多线程情况下不管循环几次多执行一次8.断言 一般取http请求的响应数据状态码,用来判断是否符合要求(可以自己定义)如 ("status":0)匹配模式:包含、等于、不等、或等待的逻辑关系都存在,勾选即可9.监听器: 如观察结果树,可实时查看结果,便于调试使用110.常见问题:
令牌失效:token有问题
请求数据格式问题,如Content-Typeapplication/json;charset=utf-8或者application/x-www-form-urlencoded等等
1xx:收到请求正在处理
2xx:成功
3xx:重定向
4xx:客户端问题,如url有问题等等
5xx:服务器问题
11.Debug PostProcessor:调试情况下进行
12.接口测试同样需要测试正向与逆向,根据接口文档设计测试用例
13.函数助手,使用函数生成一个变量字符串