如何使用JMeter限制部分用户登录应用
JMeter脚本实现跳过指定用户登录的方案
以下是具体实现步骤:
1. 定义需要跳过的用户列表
有两种方式维护禁用用户:
- 方式一:用CSV文件存储
创建一个blocked_users.csv文件,每行写入一个需要跳过的用户名(比如invalid_user1、test_user_skip)。 - 方式二:直接在脚本中定义
在测试计划的「用户定义变量」中添加变量,比如blocked_users,值设为invalid_user1,invalid_user2,invalid_user3(用逗号分隔)。
2. 添加判断逻辑控制器
在登录请求的父级添加「If Controller」,用来判断当前用户是否属于需要跳过的范围:
- 如果用CSV存储禁用用户:
在If Controller的条件中使用Groovy脚本判断:${__groovy(new File('blocked_users.csv').readLines().contains(vars.get('username')))} - 如果用逗号分隔的变量定义:
If Controller的条件写:
注:${__groovy(vars.get('blocked_users').split(',').contains(vars.get('username')))}username是你主CSV数据集中的用户名字段变量,需和实际配置一致。
3. 添加跳过动作
在If Controller下添加「Test Action」元件,保持默认配置即可(该元件不会发送请求,仅作为空执行动作)。这样当命中禁用用户时,脚本会执行这个空动作,跳过后续的登录请求。
4. 调整主CSV配置
确保你的主用户CSV数据集配置设置:
- 「Recycle on EOF?」设为
False - 「Stop thread on EOF?」设为
False - 「Sharing mode」根据需求选择(比如「Current thread group」让每个线程独立读取用户)
5. 可选:添加跳过日志
在If Controller下添加「JSR223 Sampler」,写入以下代码,方便在日志中查看被跳过的用户:
log.info("已跳过禁用用户: " + vars.get('username'))
内容的提问来源于stack exchange,提问作者vishakha bharambe
相关产品推荐
相关产品推荐

