如何配置让登录sampler仅运行一次?

JMeter 配置Login Sampler仅运行一次的方案
针对你的需求,有三种常用的可落地配置方式,你可以根据实际场景选择:
方案1:全局仅执行一次登录,所有线程共用同一份Cookie(最推荐)
适用于多线程压测时不需要每个线程单独登录的场景,步骤如下:
- 右键测试计划,依次选择
添加→线程(用户)→setUp线程组 - 将Login Sampler移动到该setUp线程组下,设置setUp线程组的线程数为1、循环次数为1
- 在setUp线程组同级添加
HTTP Cookie管理器,打开管理器设置:- Cookie策略选择
standard或兼容你站点的策略 - 勾选
在所有线程中共享选项
- Cookie策略选择
- 之后Thread Group 2中的所有Sampler只要配置了同一个HTTP Cookie管理器,就会自动携带登录后拿到的Cookie
方案2:每个线程仅执行一次登录,后续循环仅运行业务Sampler
适用于需要每个线程单独登录的场景,无需拆分线程组:
- 在Thread Group 2下添加
仅一次控制器(Once Only Controller) - 将Login Sampler拖动到该控制器下方即可,每个线程只会在第一次循环时执行一次登录,后续多次循环仅运行控制器外的其他业务Sampler
方案3:普通线程组内全局仅执行一次登录
如果不想拆分线程组也不需要每个线程单独登录,可以用条件控制器实现:
- 在Login Sampler外层添加一个If控制器,条件填写
${__jexl3(${__counter(TRUE,)} == 1,)} - 该全局计数器只有第一次执行时条件成立,仅会跑一次Login Sampler,后续所有请求都不会触发登录操作
注意:如果跨线程组使用Cookie,必须开启HTTP Cookie管理器的全局共享配置,否则其他线程组无法拿到登录生成的Cookie
内容的提问来源于stack exchange,提问作者bugCracker
相关产品推荐
相关产品推荐

