0

以下是一个人为的演示,它重现了我在使用更大的真实测试计划时遇到的问题。我有 3 个屏幕截图来演示 RegEx PostProcessor 在执行期间如何从不匹配。

[编辑]请注意,在我的屏幕截图中,要检查的响应字段显示为“响应消息”。正如解释的那样,我已经测试了 Body 并得到了“null”。如果屏幕截图显示选择了空结果的正文会更好,但这应该仍然有意义

1)这是视图树中采样器响应的 HTML: 图 1

请注意,我正在使用 Regex [Pp]age\s\d{1} 在第一个采样器响应的 HTML 中成功找到所需的文本“Page 1”。

2)这是第一个采样器上的 RegEx 后处理器: 图 2

请注意,它使用与之前的屏幕截图相同的正则表达式,默认文本是“notfound”,结果变量是“TempVar”。

  • a)屏幕截图显示选择了“主要示例”和“响应消息”。这将返回默认文本。
    b)未显示 - 我尝试了“主样本”和“正文”,但返回 null。

3)这是第二个采样器的路径,其中第一个采样器正则表达式的结果被输入到 URL 参数中,?MyVar=${TempVar} 如图 3 所示

现在回到图 1,您将看到在执行过程中,第二个采样器上的动态 URL 在使用“Response Message”时变为“MyVar=notfound”(如果使用“Body”,则变为“MyVar=null”) .

请让我知道我做错了什么。我已经尝试了 RegEx Extractor 屏幕中的每个组合,但我从未能够让它从表达式中返回匹配的文本。

谢谢你。

4

1 回答 1

1

将您正在使用的正则表达式更改为:

<h3>This\sis\s([^<]*)<\\/h3>

虽然您使用的正则表达式确实有效(它将在第 1 页匹配),因为它没有使用 () 表示法将值返回给变量,但您最终会得到 null。需要大括号来表示返回的内容。

查看此页面,它提供了有关 JMeter 如何使用正则表达式的更多详细信息。

于 2012-06-11T18:11:16.217 回答