JMeter电商性能测试场景:如何设置仅登录用户可按比例执行结账操作
JMeter电商场景性能测试配置方案
1. 配置四类操作执行占比
先创建压测线程组,按你的压测需求设置线程数、ramp-up时间和迭代次数,勾选「Same user on each iteration」保证同一迭代内用户状态一致。
在线程组下新增4个吞吐量控制器(Throughput Controller),分别对应四类操作,统一选择「Percent Executions」模式、不勾选「Per Thread」,按如下规则配置占比:
- 首页控制器:占比设置为20%
- 登录控制器:占比设置为40%
- 商品目录控制器:占比设置为20%
- 结账控制器:占比设置为20%
四类控制器占比总和为100%,符合你的场景占比要求。
2. 实现结账操作仅对已登录用户生效
2.1 登录状态存储与标记
在登录控制器下的登录请求sampler后,添加对应元件存储身份凭证并标记登录状态:
- 若站点是Cookie鉴权:直接添加
HTTP Cookie管理器,JMeter会自动存储当前线程的登录Cookie,全局生效 - 若站点是Token鉴权:添加
JSON提取器或正则表达式提取器,将登录响应返回的token提取为线程级变量,例如${access_token} - 最后添加一个BeanShell后置处理器,写入代码
vars.put("is_login", "true");,给当前线程打上已登录标记,变量作用域仅限当前线程。
2.2 结账操作添加登录判断
在结账控制器下新增如果(If)控制器,设置判断条件为 "${is_login}" == "true",勾选「Interpret Condition as Variable Expression」选项避免变量为空时的解析异常。将所有结账相关的请求sampler全部放在该If控制器下,即可保证只有执行过登录操作、带有is_login标记的线程才会触发结账请求。
3. 配置校验与优化
- 在线程组配置中勾选「每次迭代重置用户变量」,避免上一轮迭代的登录状态残留,导致占比统计和权限判断异常
- 配置完成后可添加
调试取样器,运行少量线程验证占比执行、登录状态判断逻辑是否符合预期,正式压测时禁用调试元件即可
内容的提问来源于stack exchange,提问作者Rickshaw Tomtom
相关产品推荐
相关产品推荐

