Jmeter压测脚本如何根据用户类型设置付费专属页面的访问条件?
JMeter 区分用户类型执行差异化请求实现方案
方案一:单CSV存储全量用户(推荐,维护成本最低)
- 第一步:调整CSV文件结构,新增用户类型标识列
原有CSV的账号密码列基础上新增user_type字段,示例内容如下:username,password,user_type free_user001,pass1234,free paid_user001,pass5678,paid free_user002,pass1234,free paid_user002,pass5678,paid - 第二步:更新CSV Data Set Config配置
原有配置不变,新增变量名user_type对应第三列,若CSV带表头则开启「忽略首行(只在变量名首行设置时生效)」选项。 - 第三步:添加If Controller控制付费请求执行
将仅付费用户可访问的特殊页面请求全部拖拽到If Controller节点下,设置如下:- 勾选「Interpret Condition as Variable Expression?」选项(必选,否则高并发下性能会严重下降)
- 条件表达式填
${__jexl3("${user_type}" == "paid",)},如果是JMeter 5.4+版本更推荐用性能更好的groovy表达式:${__groovy(vars.get("user_type") == "paid",)}
方案二:拆分独立CSV存储(适合需要严格控制两类用户并发占比的场景)
- 新建两个CSV文件,分别存储免费用户、付费用户的账号密码信息
- 新建两个独立线程组,分别配置对应CSV Data Set Config读取对应账号,设置符合业务预期的线程数比例
- 付费用户线程组直接添加特殊页面请求,免费用户线程组无需配置该部分步骤即可实现逻辑隔离
调试验证要点
- 脚本中临时添加Debug Sampler,运行后查看
user_type变量是否正常读取、判断逻辑是否符合预期 - 首次运行可将线程数设为1,循环次数设为CSV账号总数,确认两类用户的执行流程都符合设计要求
内容的提问来源于stack exchange,提问作者Helping Hands
相关产品推荐
相关产品推荐

