JMeter如何实现每半小时中断式执行登录操作?
JMeter实现每半小时自动重新登录的方案
核心思路
放弃仅执行一次的setUp Thread Group,改用独立定时登录线程组+全局变量共享的方式,实现每半小时自动执行登录,同时让业务线程自动使用最新登录凭证。
具体实现步骤
- 创建独立的定时登录线程组
- 设置线程组的循环次数为永远,线程数设为1(避免重复登录)。
- 勾选测试计划的
Run Thread Groups Concurrently选项,让登录线程组和主业务线程组同时运行。
- 控制登录间隔(含首次立即执行)
- 移除默认定时器,添加
JSR223 Timer,用Groovy脚本实现首次无延迟、后续每30分钟触发一次:// 首次运行立即执行,之后每30分钟(1800000毫秒)执行一次 if (ctx.getThreadNum() == 0 && ctx.getThreadGroup().getIteration() == 0) { return 0 } else { return 1800000 }
- 实现可中断的登录逻辑
- 若需要中断旧会话(比如强制登出),在登录请求前添加登出请求,通过全局属性获取旧凭证执行登出。
- 执行登录请求,登录成功后用
__setProperty函数将最新凭证(如token、cookie)存入全局属性:
(${__setProperty(global_token,${response_token},true)}response_token是登录请求返回的token变量,true表示属性可跨线程组访问)
- 主业务线程组使用最新凭证
- 所有需要登录凭证的请求,用
__property函数获取全局属性中的最新值:
每半小时登录后,业务线程会自动切换到新凭证。${__property(global_token,,)}
额外注意事项
- 如果后端登录凭证会自动失效,可省略登出步骤,直接执行新登录覆盖旧凭证即可。
- 可添加响应断言监控登录状态,确保登录失败时能及时告警或重试。
内容的提问来源于stack exchange,提问作者EBDS
相关产品推荐
相关产品推荐

