rest - 如何使http请求中的搜索参数在jmeter中成为动态的
问题描述
http请求:http://ipAddress:Port/SomeResource?Param1=value1&Param2=value2& ......
很快。这是 jmeter 中的一个 http 请求示例,它访问了一个 rest api 并以 JSON 格式获取响应。
这里的挑战是 Param1、param2、param3 .... 这些搜索参数编号不是恒定的,它可能会根据调用而改变,所以我正在制作一个 csv 文件,其中包含包含逗号分隔格式的搜索参数的行。
CSV file is like
param1,param2
param1,param2,param3
param1
我正在使用 CSV 数据配置从 csv 文件中提取数据并将其放入 http 请求中
并将其放入 http 请求中,例如
现在,如果参数为空,我不想在 http 请求标头中看到它,那么如何在 jmeter 中执行此操作。
解决方案
从HTTP 请求中删除所有“参数” ,它应该是干净的
- 添加JSR223 PreProcessor作为您想要参数化的 HTTP 请求采样器的子级
将以下代码放入“脚本”区域:
1.upto(4, { if (vars.get('param' + "$it") != null) { sampler.addArgument(vars.get('param' + "$it"),'someValue') } })
- 添加JSR223 PostProcessor作为您要参数化的请求的子项
将以下代码放入“脚本”区域:
1.upto(4, { vars.remove("param" + "$it") })
就是这样,你现在应该得到你需要的东西。您不会在 JMeter GUI 中看到更改,您只能在运行时使用View Results Tree侦听器观察它们
推荐阅读
- django-rest-framework - 将文件附加到使用 django-rest-framework 和 sendgrid 发送的电子邮件
- go - `go tool pprof` - 使用 go 模块时如何指定源?
- apache-spark - PairRDD 比非 Pair RDD 快吗?
- puppeteer - 使用 Puppeteer page.evaluate() 时得到不同的结果
- google-cloud-platform - 创建 VM 的副本
- android - 使用共享首选项保存列表时遇到问题(仍需要帮助)
- unit-testing - 如何在 Dart 或 Flutter 中模拟静态 getter 的返回值?
- django - 在 django 模板的相关模型中获取 image.url 作为属性
- laravel - 如何使用 Laravel 使用干预图像包伪造图像上传以进行测试
- odata - EnableQuery 总是在 IEnumerable 上执行 SingleOrDefault
结果