jmeter学习、实践三----参数化和关联

上一节我们实现了登录接口的简单测试,请求参数中只有一个用户名,实现了单用户的登录。如果我们想要模拟多个用户登录的情况,难道要把登录接口重复的写很多遍,每次只是请求参数不同吗?

在这里我们应该是登录接口只写一次,每次保证其中的参数不同,即可实现参数化

1.线程组鼠标右键:添加---配置原件--CSV数据文件设置

jmeter学习、实践三----参数化和关联

2.设置文件中的相关信息

名称可以*取定,文件名即为文件所在的目录+文件名字,变量名称亦可根据需要*取定

jmeter学习、实践三----参数化和关联

3.HTTP请求接口中设置参数化,${}中的参数名称即为csv数据文件中的变量名称,这样即可在一个接口中实现了入参的参数化。

jmeter学习、实践三----参数化和关联

二、登录操作对于整个系统来说起到大门的作用,只有进了这扇门,后续的操作才可以顺利进行。博主所测试的系统登录接口会返回token,作为后续接口请求的request headers中必填参数,

因此我们必须从登录接口的response中获取到token,作为后续接口请求头中的token。我这里采用正则表达式来获取token

1.HTTP请求(即登录接口)鼠标右键:添加--后置处理器--正则表达式提取器

登录接口返回的response如图:

jmeter学习、实践三----参数化和关联

这不是很复杂表达式,一般‘.*’都能正常获取。正则表达式如下,引用名称可以定为token,后续其它请求接口的request headers中通过${token}进行引用

jmeter学习、实践三----参数化和关联

 模板:

$-1$:表示取所有值
$0$:表示随机取值
$1$:表示取第1个
$2$:表示取第二个
以此类推:$n$:表示取第n个

匹配数字:

0 代表随机取值,1 代表全部取值

2.关联的token使用

在下一个请求接口中添加HTTP信息头管理器,请求头中实现关联${token}的使用

jmeter学习、实践三----参数化和关联

3.如果后续多个接口都是基于登录之后进行操作,那么每个接口都是相同的token令牌,但是在每个HTTP请求中重复的添加HTTP请求头信息管理器这是非常繁琐的事情。

这里涉及到分层思想,把公共的部分放在线程组(xx系统)目录下面,即可设置一次,实现公用。

例如,博主这里已经把查看结果树,响应断言,HTTP信息头管理器、用表格查看结果全部放在了线程组(xx系统)下面的目录,从而实现的公用而不用在每个HTTP请求的接口中重复编写。