JMeter:如何根据条件在请求体中传递字符串
可以通过预处理器实现此需求
最适合的方案是使用JSR223预处理器,借助Groovy脚本灵活处理变量的非空判断,生成符合要求的数组。具体步骤如下:
- 将JSR223预处理器添加到目标请求的子节点下,选择Groovy作为脚本语言
- 编写脚本实现非空变量筛选与JSON数组生成:
// 初始化空列表用于存储有效ID def validContentIds = [] // 逐个检查变量,非空则加入列表 def trendingId = vars.get("identifier_trending_INDIVIDUAL") if (trendingId != null && !trendingId.trim().isEmpty()) { validContentIds.add(trendingId) } def fetchId = vars.get("identifier_fetch_INDIVIDUAL") if (fetchId != null && !fetchId.trim().isEmpty()) { validContentIds.add(fetchId) } def interestId = vars.get("identifier_interestBased_INDIVIDUAL") if (interestId != null && !interestId.trim().isEmpty()) { validContentIds.add(interestId) } // 将列表转为JSON格式,存入新变量 vars.put("filtered_content_ids", new groovy.json.JsonBuilder(validContentIds).toString())
- 修改请求体,引用生成的新变量:
{"content_id": ${filtered_content_ids}}
注意事项
- 确保脚本中使用的变量名与你实际定义的变量完全一致
- 优先选择Groovy作为脚本语言,它在JMeter中的执行性能更优
- 若不需要处理变量前后空格,可去掉代码中的
trim()方法
内容的提问来源于stack exchange,提问作者Gomathy Balakrishnan
相关产品推荐
相关产品推荐

