性能测试-JMeter正则表达式提取器
前面我们说了正则表达式介绍,今天我们主要来学习下正则表达式提取器。
配置项(Apply to):
与响应断言中用法一致,不再赘述。
Field to check:
Body
Response Body,比如HTTP响应报文的实体主体,不包含状态行与首部。
Body(unescaped)
Response Body(转换了转义字符),对HTTP响应报文的实体主体中的所有HTML转义字符进行了转义处理。由于转义时没有参照上下文,在处理时可能会出错,并且开启此选项会严重影响性能,故不建议使用。
Body as a Document
通过Apache Tika从各种类型的文档中提取文本。此选项开启也会严重影响性能,谨慎使用。
Response Headers
一般用于HTTP请求,HTTP响应报文中的首部。
Request Headers
一般用于HTTP请求,HTTP请求报文中的首部。
URL
一般用于HTTP请求。HTTP请求报文中的请求URL地址(未开启重定向功能);若开启了重定向功能,则包含原始请求中的请求URL地址与重定向后的URL地址。
比如前面访问新浪的例子,开启了重定向后,则包括:
http://www.sina.com/,http://www.sina.com.cn/和
https://www.sina.com.cn/三个URL地址
Response code
一般用于HTTP协议,指的是HTTP响应报文中的状态码,比如200、301、404等。
Response Message
一般用于HTTP协议,指的是HTTP响应报文中的原因短语,比如OK、Moved Permanently、Not Found等。
Name of created variable:
用于存储结果的JMeter变量的名称。
Regular Expression:
用于解析响应数据的正则表达式。使用正则表达式中的()来捕获响应字符串。
可以使用一组或多组()来捕获一个或多个字符串。这样的分组称为捕获组,
每个捕获组都有一个编号与之对应,以方便引用捕获组匹配的内容。若有多个捕获组,编号规则为:
从左至右,按照“(”出现的顺序,从1开始依次递增进行编号:1,2,3,... ,n
还有一个额外编号为0的捕获组,用于表示匹配到的整个正则表达式字符串。
比如:
正则表达式: ((\d{4})-(\d{2})-(\d{2}))\s((\d{2}):
(\d{2}):(\d{2}))



Default Value:
如果正则表达式没有匹配到内容,则保存结果的JMeter变量将设置为默认值,这样会对调试JMeter测试带来便利。
如果没有提供默认值,则很难判断正则表达式是否匹配失败,或者RE元素是否未处理或者是否使用了错误的变量。
但是,如果您有多个设置相同变量的测试元素,那么如果表达式不匹配,您可能希望保持变量不变。
在这种情况下,请在调试完成后删除默认值。
Use empty default value:
如果选中该复选框则默认值为空,则JMeter会将保存结果的JMeter变量设置为空字符串。
应用案例:
业务操作步骤:
1.登录ECshop后台管理系统;
2.设置查询条件(比如按商品品牌)搜索商品;
3.在返回的查询结果集中选择第一个商品删除。
这里每一步骤对应一个HTTP请求,在第二个请求中每次返回的查询结果集不一样(因为每执行一次会删除一个商品),
故向第三个请求传递的商品编号参数不能写死,需要从第二个请求对应的响应数据中提取出来。
操作步骤:



浙公网安备 33010602011771号