什么是正则表达式提取器
正则表达式提取器的使用涉及关联,关联呢,就是把应用中动态变化返回的数据获取到,把它保存为一个参数,提供给后面需要用到的地方进行使用。
关联通过“添加—后置处理器—正则表达式提取器”来获取数据,且注意正则表达式提取器附在需要获取数据的某个采样器之下,数据一般从“查看结果树“的响应数据获取。
一、获取单个数据
举例:获取用户列表的结果如下,需要将"mobilephone":"158******63" 手机号码取出用来进行登录操作
1、请求下面添加—后置处理器—正则表达式提取器
提取器字段含义:
Apply to | 应用范围(选默认的 main sample only 就可以) |
要检查的响应字段 | 样本数据源(可提取的字段) |
引用名称 | 接收提取值的变量名(引用方法:${引用名称}) |
正则表达式 | 数据提取器,()括号里为你要获取的的值 |
模板 | 用于从找到的匹配项创建字符串的模板。这是一个带有特殊元素的任意字符串,用于引用正则表达式中的组。引用组的语法是:' $ 1 $ '引用组1,' $ 2 $ '引用组2,等等。$ 0 $引用整个表达式匹配的内容。 |
匹配数字 | 正则表达式匹配数据的所有结果可以看做一个数组,匹配数字即可看做是数组的第几个元素。-1表示全部,0随机,1第一个,2第二个,以此类推。若只要获取到匹配的第一个值,则填写1 |
缺省值 | 匹配失败时的默认值。可以不写。若需用于后续逻辑判断,可简单写为 Error |
Use empty default value | 勾选后,提取不到值时,则返回空字符串 |
要检查的响应字段:
Body | 响应体,不包括响应头;常用选项 |
Body (unescaped) | 响应体,替换了所有HTML转义符;(不建议使用) |
Body as a Document | 从不同类型的文件中提取文本;(影响性能) |
Request Headers | 请求头 |
Response Headers | 响应头 |
URL | URL |
Response Code | 响应码 |
Response Message | 响应信息 |
2、在获取用户列表添加的 Debug PostProcessor 为调试所用,一般用于查看获取的变量值。
从执行结果中,能看到获取的值为如下:
3、在登录请求中,将正则表达式获取的值进行引用。
二、获取多个数据
举例:在用户列表的结果中,需要将"id":82,"mobilephone":"150****7414", 用户id、手机号码都取出用来进行后续登录、投资操作
1、注意如果包含多个正则,我们进行如下设置
其中,我们可以通过 Debug PostProcessor 来查看结果
从结果中,如果我们要引用id、mobilephone的话,也就是这里user_g1、user_g4分别指代的值。
2、注意变量值在登录、投资请求中的引用
附正则表达式说明:
则表达式就是用来匹配字符串的公式,比如正则表达式中\d+ 是来匹配1个或更多连续的数字。
常用元字符 | |
. | 匹配除换行符以外任意字符 |
\s | 匹配任意空白符 |
\d | 匹配数字 |
\b | 匹配单词的开始或结束 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
常用限定符 | |
* | 重复0次或更多次 |
+ | 重复1次或更多次 |
? | 重复0次或1次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n次到m次 |