jmeter正则表达式提取多个值
在进行性能测试时,我们经常需要从响应结果中提取出特定的值,以便后续的测试操作。在jmeter中,可以使用正则表达式提取器来轻松实现这个功能。
本文将介绍jmeter中如何使用正则表达式提取器来提取多个值。我们将以一个简单的示例进行说明。
需求
在一个网站的响应结果中,有多个url链接,我们需要将这些链接全部提取出来。
响应结果示例:
<html>
<body>
<a href="http://www.example.com/link1">link1</a>
<a href="http://www.example.com/link2">link2</a>
<a href="http://www.example.com/link3">link3</a>
</body>
</html>
正则表达式
我们需要使用正则表达式来匹配每一个链接。正则表达式的格式如下:
href="(.*?)"
该正则表达式的意思是,匹配以 href=” 开头的字符串,然后匹配任意字符0到多次,最后匹配到一个双引号。
我们使用 .? 而不是 . 是为了避免匹配过多的内容。.* 会匹配尽可能多的字符,在一些情况下会出现匹配到不必要的内容的情况。
jmeter配置
接下来,我们需要将上述正则表达式配置到jmeter的正则表达式提取器中。首先,添加一个正则表达式提取器:
- 在线程组下右键,选择添加 -> 后置处理器 -> 正则表达式提取器。
- 在正则表达式提取器中,填写相关配置信息(见下图):
这些配置的含义如下:
- Name:提取器的名称,任意填写。
- Apply to:响应结果所应用的内容,选择 “Main sample and sub-samples”。
- Response Field to check:选择 “Body(响应正文)”。
- Reference Name:提取器提取出的值存储到jmeter变量中的名称,任意填写。
- Regular Expression:填写前面介绍的正则表达式。
- Template:使用 1 表示正则表达式匹配到的第一个分组。
验证配置
接下来,我们需要验证上述配置是否正确。在jmeter中,可以使用 Debug Sampler 来检查正则表达式提取器是否正确提取出了我们需要的值。
- 在正则表达式提取器下面添加一个 Debug Sampler,配置如下:
-
启动测试并查看调试结果:
从调试结果可以看出,jmeter成功提取出了三个链接,并保存到变量 link_1、link_2、link_3 中。
使用提取的值
使用提取的值很简单,只需要在测试计划中引用对应的变量即可。在我们的示例中,可以使用如下语句来访问提取出的链接:
${link_1}
${link_2}
${link_3}
结论
正则表达式提取器是jmeter中一个非常方便的功能,可以轻松地从响应结果中提取出特定的值。在本文中,我们以一个简单的示例介绍了如何使用正则表达式提取器来提取多个链接。