jmeter控制仅一次登录的三种方案

jmeter控制仅一次登录的三种方案分别是:

1、跨线程组

2、吞吐量控制器

3、仅一次控制器

一 跨线程组:

思路:将登录作为一个线程组,其他接口作为另外一个线程组,登录的线程组数量和循环次数设置为1,在登录的线程组内通过正则获取返回的token,

然后通过beanshell后置处理器将得到的token以全局变量的方式进行存储,以便下一个线程组能够取到该token的值;

脚本如下:

二、吞吐量控制器:也是之前看文章的时候听说个这个控制器可以控制登录的次数,自己实际操作了一下果然有用,

思路:在线程组下面添加一个逻辑控制器:吞吐量控制器,在吞吐量控制器里面添加登录样本,首先自己查看一下一次登录大概是多少吞吐量(可以通过聚合报告获取),

那么在吞吐量控制器里面设置值就设置一次登录的吞吐量或者稍微大于一次登录的吞吐量即可,设置完成后也同样通过正则提取,通过beanshell后置处理器

将得到的token以全局变量的方式进行存储(一定要存储为全局变量,否则下一个样本无法获取到该token值),以便下一个样本能够取到该token的值;

脚本如下:这里之所以要用固定定时器是因为10个线程组是并行的,要等登录接口获取到token值后才执行http请求,

三、仅一次控制器:

仅一次控制器也是第一次实际运用,查资料才发现,仅一次控制器针对的是每一个线程组仅一次,那如果线程组数量设置的是10,仅一次控制器下的样本

还是会执行10次,所以操作的时候,可以把线程组数量设置为1 ,循环设置为10,那么循环10次,仅一次控制器下的样本只会执行一次。

设置完成后也同样通过正则提取,通过beanshell后置处理器将得到的token以全局变量的方式进行存储(一定要存储为全局变量,否则下一个样本无法获取到该token值),

以便下一个样本能够取到该token的值;

 脚本如下:

以上三种方式均需要用到全局变量的存储与取值:可以参考我本篇博客:https://www.cnblogs.com/lelexiong/p/9167668.html

原文地址:https://www.cnblogs.com/lelexiong/p/13064230.html