我正在使用 JMeter 2.7 对 Web 应用程序进行负载测试。我有一个 HTTP 请求采样器,它返回一个 JSON 文档,其中包含我想从中提取的两个值。为此,我将两个 RegEx PostProcessor 分配给具有以下配置的采样器:
Regular Expression Extractor
Apply to: Main Sample Only
Response Field to Check: Body
Reference Name: val_1
Regular Expression: "val_1": "(\S+)"
Template: $1$
Match No.: 1
第二个的配置是一样的,只是替换val_2
为val_1
. 这些似乎应该起作用。
现在,我在后续的 HTTP 请求上还有一个 JSR223 PreProcessor 脚本,我想用它来转换我通过正则表达式获取的值。但是, 和 的输出vars.get('val_1')
都是vars.get('val_2')
空值。修改用户定义的变量和“应用到”设置并没有产生任何有用的结果。
谁能解释我做错了什么?如何在我的 JSR223 脚本中使用通过 RegEx 提取器检索到的数据?提前致谢。
编辑 - 2012
年 9 月 26
日有人要求我多解释一下结构,所以这里有一个大纲。
Thread Group
Once Only Controller
HTTP Sampler
Regular Expression Extractor (for val_1)
Regular Expression Extractor (for val_2)
Some Additional Simple Controllers with HTTP Samplers Here
Throughput Controller (80%)
HTTP Sampler
JSR223 PreProcessor (This is the PreProcessor in question)
Regular Expression Extractor (to grab an unrelated value from the response)
Some Additional Controllers with HTTP Samplers Here
希望这更有帮助。