一、jmeter的请求默认值

1、当请求接口有多个时,可设置http请求默认值,默认一个请求接口,若接口改变,只需修改一个请求接口即可,如下图所示:

 

jmeter 后置处理器里写java jmeter后置处理器json_正则表达式

 

 

2、当请求接口多个,且不同类型请求接口的请求头不一致时,可添加测试片段,来区分不同类型的接口请求,且每个测试片段下,都有不同的请求头。如登录时的请求Content-Type为application/x-www-form-urlencoded,但其他接口请求时为application/json,导致接口一直报错。如下图所示

jmeter 后置处理器里写java jmeter后置处理器json_json_02

 

 

 

jmeter 后置处理器里写java jmeter后置处理器json_jmeter 后置处理器里写java_03

二、jmeter的后置处理器

这两者都可提取需要的返回参数,作为下一个接口中的参数是使用,如登录后返回一个token值,之后的请求需要带上该请求参数,如下图所示,登录返回一个data,之后的请求头中都需带上该数作为token值

jmeter 后置处理器里写java jmeter后置处理器json_请求头_04

 

a、json的提取

创建一个json提取器,如下图所示

jmeter 后置处理器里写java jmeter后置处理器json_jmeter 后置处理器里写java_05

 

 

配置参数,然后将配置的参数,使用${token}格式放在需要的位置,token为自己取得变量名称,可随意。因后续的查询,修改,都需带上token值,因此在后续的请求头中都需要配置动态的token参数

jmeter 后置处理器里写java jmeter后置处理器json_请求头_06

 

jmeter 后置处理器里写java jmeter后置处理器json_json_07

 提取参数时,可在返回结果中测试,如下图,在查看结果树中,将结果修改为json返回格式,然后在json path expression中设置提取的数据,如下图所示,未不同json的提取值示例:

$.data.records[0].code:为提取第一个列表中的code值。若需要修改,删除的接口,则可提取参数中的id值,使用${id}格式,动态传入id值,实现新增,修改的接口测试

 

jmeter 后置处理器里写java jmeter后置处理器json_jmeter 后置处理器里写java_08

jmeter 后置处理器里写java jmeter后置处理器json_jmeter 后置处理器里写java_09

b、正则表达式的提取

创建后置处理器:正则表达式

jmeter 后置处理器里写java jmeter后置处理器json_请求头_10

配置提取的返回数据:"data":"(.*?)"

正则表达式:

():括起来的部分就是要提取的内容;

.:匹配任意字符串;

+:匹配一次或多次;*:匹配0次或多次

?:不要太贪婪,在找到第一个匹配项后停止匹配。

模板:

$1$:用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是$2$$3$等等,表示解析到的第几个值给title。如:$1$表示解析到的第1个值

 

jmeter 后置处理器里写java jmeter后置处理器json_json_11

三、jmeter函数

1、${__CSVRead()}:文本读取:可用于登录账户密码成对出现的情况,或新增,修改时部分字段为下拉框的情况;如下图,设备新增为下拉框选项:

 

jmeter 后置处理器里写java jmeter后置处理器json_json_12

 

新建一个文本写入下列字段,数据库中保存的为英文,则要写入对应数据:

jmeter 后置处理器里写java jmeter后置处理器json_json_13

 

选择函数助手框:

 

jmeter 后置处理器里写java jmeter后置处理器json_json_14

 

 

 

jmeter 后置处理器里写java jmeter后置处理器json_json_15

在新增接口参数列表中进行配置,即可随机选取不同下列列表

jmeter 后置处理器里写java jmeter后置处理器json_jmeter 后置处理器里写java_16

 

若是登录用户与密码格式,则如下图所示:

a、第一列为username,第二列为对应的password,中间以逗号隔开,比如

username1,password1

username2,password2

username3,password3

username4,password4

username5,password5

b、http请求时参数化username和password

帐号的value为${__CSVRead(D:\jmeter\logins.txt,0)},

密码的value值替换为${__CSVRead(D:\jmeter\logins.txt,1)}