首页 > 技术文章 > jmeter正则表达式教程(3)

tkliu 2020-12-30 18:16 原文

正则表达式:网上没有找到详细简单的,自己描述下不要介意;
正则表达式用于提取相应数据中的代码、文本等数据,利用正则表达式,提取响应数据,移植到下一线程组的参数中,从而进行测试。

一、解释:解释很多,但是最关键
(1)注释不多说,随便自己喜欢
(2)Apply to:默认即可
(3)要检查的字段:主体等选择,一般我们选择主体,即服务器返回给我们的页面主体信 息
(4)引用名称:即参数名称,这个自己定义,在后面时可用
(5)正则表达式: 正则表达式中()括起来的部分就是要提取的。.代表任意字符,+代表出现任意次,后面加?. 最后就是这个(.+?)
(6)模板:$1$代表只有一组数据
(7)匹配数字:0代表随机取值,1代表全部取值,通常情况下填0,如果在LR中,取出的值是一个数组,还得处理一下,LR11版本用一个随机的函数就可以不用写大段的代码来处理数组
(8)缺省值:如果参数没有取得到值,那默认给一个值让它取

引用名称:即参数名称,这个自己定义,在后面时可用

模板:用$$引用起来,如果在正则表达式中有多个提取表达式(多个括号括起来的东东),则可以是$1$,$2$等等,表示解析到的第几个值给str,正则表达式的提取模式,值从1开始,值0对应的是整个匹配的表达式 如对于表达式s(.*) 值0对应str,值1对应tr

匹配数字(0代表随机):0代表随机,-1代表所有,其余正整数代表将在已提取的内容中,第几个匹配的内容

$x$ 相当于 正则表达式的 第几个需求
匹配数字 相当于 需求在响应数据的位置(因为 数据内可能有多个需求)

一个符合要求的正则表达式:name = "file" value = "(.+?)">。
():封装了待返回的匹配字符串。
.:匹配任何字符串。
+:一次或多次。
?:不要太贪婪,在找到第一个匹配项后停

二、启动jmeter,打开测试计划,先执行一次,查看结果树找到需要提取的信息;在需要提取的请求内添加正则表达式提取器(后置处理器中)

三、填写正则表达式内容;红框内是要提取的例子,确定好要提取的东西,然后进行填写正则表达式;

四、运行线程组提取;我们正则表达式提取的内容是正确的。因为我们HTTP请求里面植入了参数${user} ,所以在查看结果树中,显示的是错误的。

五、技巧Debug Sample查看:添加Debug Sample(线程组->Sample->Debug Sample),添加后运行查看结果树;

显示出来了我们的正则内容

正则我也学的比较少,学的只是基础。后面还有一个jmeter+ant比较好,可以直接导出性能测试报告

推荐阅读