2

我正在使用 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_2val_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

希望这更有帮助。

4

1 回答 1

1

你的正则表达式是“val_1”:“(\S+)”吗?

您可以在 Http 采样器之后添加一个调试采样器以检查是否定义了 2 个变量。为此,请添加一个树结果侦听器并查看调试采样器显示的内容。

于 2012-09-26T22:17:57.013 回答