Jmeter之正则表达式提取器

  在很多情况下,我们需要提取响应结果中的一些信息,供后续功能使用。可以使用后置处理器中的正则表达式提取器。

一、正则表达式提取器

 

 二、配置说明

  1、姓名:标识

  2、注释:备注

  3Apply to:正则表达式提取内容的范围(一般就选择默认的Main sample only

  4、要检查的响应字段:需要提取的数据源

  5、引用名称:变量名,供其他地方使用,和Jmeter变量引用一致(${变量名})

  6、正则表达式:提取的正则表达式

  (1、使用()表示需要提取的部分--一定要是英文模式下的小括号

  (2. 表示匹配任何字符

  (3+ 一次或多次

  (4、?表示在找到第一个匹配项后停止寻找

  ----注意点1

  一般情况需要窃取的是其中的某一部分,所以一定要使用?,再找到自己需要的数据后,就停止;在使用?()后需要添加终止的点,不然会在找到第一个字符就停下。

  比如:

  字符串为:A:11,B:12

  在提取的时候,不加?---A:(.+)---->提取的值为:11,B:12

  在提取的时候,加?但是不加结束点---A:(.+?)---->提取的值为:1

  想正确的取值到11,配置为:A:(.+?),

  -----重点2:要提取不是相邻位置(即:中间隔了其他字符)的两个或多个字符,可使用:.+?进行连接

  如:

  "A1":"([^"]+?)".+?"C1":"(.+?)"

  这样会在提取A1后,不管中间的内容,再提取C1的数据。

  7、模板:对应提取的模式,样式为:$n$n标识提取的第几个变量

  (如果提取了多个值,可以通过$1$,$2$,$...$提取出相应的值)

  如:正则表达式为:

  "A1":"([^"]+?)","C1":"(.+?)"

  模板可以设置为:$1$,$2$---$1$表示匹配A1后的值;$2$表示破匹配C1后的值;

  在提取多个时,如果模板设置为$2$将只提取C1后的数据;

  8、匹配数字:正则提取后的结果可以看做是一个数组,匹配数字即可看成是数组的第一个元素。

  (0代表随机取值,-1代表所有值,其余正整数代表第几个匹配的内容;如果设置为-1,可以通过:${status_1}提取出第一个值;其他类似)

  在设置为-1时,也可以和ForEach Controller一起使用来遍历所有的数据。

  9、缺省值:在正则表达式匹配失败时,取的值。

原文地址:https://www.cnblogs.com/smallstone2018/p/9799734.html