Jmeter 怎样只用登录一次(全部线程中使用同一个登录后的token)

参考文档2)jmeter 跨线程组调用变量

1、beanshell自带方法html

props.put("变量名","值"); //全局变量赋值java

props.get("变量名") ; //获取全局变量shell

2、jmeter自带函数__setProperty并发

${__setProperty(变量名,值})};   // 全局变量赋值less

${__property(变量名)};   //全局变量提取函数

${__P(变量名)};    //基本等同于${__property(变量名)}post

 

3、调用java方法测试

JMeterUtils.setProperty("变量名", "值") 全局变量赋值url

4、使用jmeter插件.net

利用两个前置跟后置处理器的插件,可使上下两个线程组传递某一个变量。

经过后置处理器把对应的一个变量值放到FIFO Queue里,而后下个线程组加上前置处理器,再从Queue里把这个变量值从新再赋值给另一个变量名。

最后,能够经过在工做台添加Property Display元件来查看是否设置成功了全局变量,也能够直接用debugsampler来看,都是能够的。以下图(可是第四种方法并不设置全局变量,因此是看不到的

仓考文档1)Jmeter 接口获取登陆态


Jmeter 接口测试过程当中,咱们会遇到登陆token 的问题。 
若是咱们要使用同一个帐号登陆,而后对其余接口进行并发测试。 
那么这个时候问题来了,咱们怎样在全部线程中使用同一个token? 
Jmeter 的仅一次控制器,仅对同一个线程有效,若是有多个线程,那么仍是要登陆屡次,产生不一样的token. 
这些token 中只有一个是有效的,那么其余的就确定失败了。

这里说一下个人解决方案: 
把登陆模块放到一个线程里面(这个线程组设置只运行一次),而后获取token, 
把这个token 保存到一个全局变量里面${__setProperty(key,${val},)}, 
其余线程组也能够访问到${__property(key)}。

登陆模块里面获取token

添加一个 Bean Shell Sampler, 里面设置全局变量

在另一个线程组中引用: 
这个时候,不管你有多少个线程,使用的所有都是同一个帐号的token了

---------------------  做者:assless  来源:CSDN  原文:https://blog.csdn.net/jasonliujintao/article/details/74427832  版权声明:本文为博主原创文章,转载请附上博文连接!