如何修改JMeter电商负载测试脚本实现随机选择分类与子分类
电商Web应用JMeter负载测试脚本优化方案
一、核心需求拆解
实现随机选择主分类(女装、男装、童装)及对应子分类(上衣、下装、连衣裙等),动态生成分类/子分类的GET请求,替代原脚本中固定的女装分类逻辑。
二、具体实现步骤
1. 整理分类与子分类映射关系
先把所有主分类、子分类的ID和对应关系整理成CSV文件,方便后续随机读取和维护:
# 主分类列表(categories.csv) 主分类ID,主分类名称 423426002,女装 423426003,男装 423426004,童装 # 子分类列表(subcategories.csv,关联主分类ID) 主分类ID,子分类ID,子分类名称 423426002,5468790,上衣 423426002,5468791,下装 423426003,5468800,上衣 423426003,5468801,下装 423426004,5468810,连衣裙 423426004,5468811,套装
2. 随机读取主分类
- 添加CSV Data Set Config组件,配置如下:
- 文件名:指向
categories.csv - 变量名称:
main_cat_id,main_cat_name - 分隔符:
, - 读取模式:
Random order(随机读取每条主分类) - 其他保持默认
- 文件名:指向
3. 关联读取对应子分类
- 添加Filtered CSV Data Set Config(需先安装JMeter插件管理器,安装"Filtered CSV"插件),配置如下:
- 文件名:指向
subcategories.csv - 变量名称:
sub_cat_id,sub_cat_name - 分隔符:
, - 过滤条件:
主分类ID == ${main_cat_id}(只读取当前主分类对应的子分类) - 读取模式:
Random order(随机选一条子分类)
- 文件名:指向
如果不想装插件,也可以用JSR223 Sampler写简单代码实现:
// 读取子分类CSV并过滤当前主分类对应的条目 def subcats = new File('subcategories.csv').readLines().drop(1).findAll { line -> line.split(',')[0] == vars.get('main_cat_id') } // 随机选一条 def randomSubcat = subcats[new Random().nextInt(subcats.size())].split(',') vars.put('sub_cat_id', randomSubcat[1]) vars.put('sub_cat_name', randomSubcat[2])
4. 替换脚本中的硬编码请求
把原脚本中固定的分类URL替换为变量:
- 主分类请求:
${主URL}/browse/category/${main_cat_id} - 子分类请求:
${主URL}/browse/category/${main_cat_id}/subcategory/${sub_cat_id}
5. 动态提取子分类(可选,若需从页面响应中获取子分类)
如果不想预先维护CSV,而是想从主分类页面的响应中动态提取子分类并随机选择:
- 在主分类请求后添加正则表达式提取器:
- 引用名称:
subcat_ids - 正则表达式:
/browse/category/.*?/subcategory/(\d+) - 模板:
$1$ - 匹配数字:
-1(提取所有子分类ID)
- 引用名称:
- 添加随机变量组件:
- 变量名称:
random_idx - 最小值:
1 - 最大值:
${subcat_ids_matchNr}(匹配到的子分类数量)
- 变量名称:
- 子分类请求URL改为:
${主URL}/browse/category/${main_cat_id}/subcategory/${subcat_ids_${random_idx}}
6. 适配不同分类的筛选逻辑
如果不同分类的筛选条件(如尺码)有差异,可添加If Controller:
- 条件设置:
${main_cat_name} == "女装" - 在Controller下添加女装专属的筛选请求;同理复制Controller修改条件,添加男装、童装的筛选逻辑。
三、注意事项
- 确保脚本中所有会话相关参数(如Cookie、VIEWSTATE等)都通过正则表达式提取器或JSON提取器动态获取,避免硬编码导致请求失败。
- 运行脚本前先单独调试单条请求,验证变量替换是否正确,分类跳转是否正常。
内容的提问来源于stack exchange,提问作者Raxon
相关产品推荐
相关产品推荐

