Jmeter之关联——常用提取器 Jmeter关联

所谓关联,从业务角度讲,即:某些操作步骤与其相邻步骤存在一定的依赖关系,导致某个步骤的输入数据来源于上一步的返回数据,这时就需要“关联”来建立步骤之间的联系。

简单来说,就是:将上一个请求的响应结果作为下一个请求的参数。。。

这里的提取器,都可以作为jmeter中关联的使用。

一、边界提取器

参数:前三个就不做介绍了;

(4)匹配数字:-1表示全部,0随机,1第一个,2第二个

(5)缺省值:这个如果没有匹配到,给它定义的一个默认值

这里和lr里的关联函数是差不多的,比如这里要提取hao123,

Jmeter之关联——常用提取器
Jmeter关联

 提取器填写如下:

Jmeter之关联——常用提取器
Jmeter关联

 在请求2里引用:引用使用${变量名},这里为${id},如下图,就已经取到值了。

Jmeter之关联——常用提取器
Jmeter关联

二、正则表达式提取器

参数:

(1)就是变量名。

(2)正则表达式:

  ():括起来的部分就是要提取的。

   .:匹配任何字符串。

  +:一次或多次。
  ?:不要太贪婪,在找到第一个匹配项后停止。

(3)模板:用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是$2$$3$等等,表示解析到的第几个值给title。如:$1$表示解析到的第1个值

(4)匹配数字:0代表随机取值,1代表全部取值,通常情况下填0

(5)缺省值:如果参数没有取得到值,那默认给一个值让它取。

Jmeter之关联——常用提取器
Jmeter关联

 在请求2里引用:引用使用${变量名},这里为${id},如下图,就已经取到值了。

Jmeter之关联——常用提取器
Jmeter关联

三、json提取器

jsonpath得使用详细:http://www.lemfix.com/topics/63

json提取器的示例:https://www.cnblogs.com/tudou-22/p/12579575.html

参数介绍:

(1)names of created variables :接收值的变量名

(2)json path: json path表达式

(3)match no:0随机;n取第几个匹配值;-1匹配所有,后续引用用 变量名_N 取第N个值。

(4)default values: 缺省值,匹配不到值的时候取该值

如果返回的数据时json串,那么该如何提取呢?

这里说一下json提取器:

json数据为:{"statusCode":200,"data":{"userId":"4a2cbe616eb74f0d99190af072c8dea6","token":"37e7a9e198186f5a443e50e6138a5bd20bd"}}

则json path表达式为:$.data.token

json数据为:{"statusCode":200,"data":[{"code":"407949","id":"aa477ad2085d492a99b877d14343d68d","name":"90一中4545"}]}

则json path表达式为:$.data[0].id  【原来这个responses 的data为数组,故应为 $.data[0].id 提取第1个值】

例子:提取下面json里的性别

Jmeter之关联——常用提取器
Jmeter关联

json提取器里填写如下:

Jmeter之关联——常用提取器
Jmeter关联

在请求2里引用:引用使用${变量名},这里为${name},如下图,就已经取到值了。

Jmeter之关联——常用提取器
Jmeter关联

四、xpath提取器

XPath Extractor是另一个可被用来提取页面给定内容的Post Processor,XPath Extractor的使用方式与Regular Expression Extractor类似,只不过需要在该Extractor中指定的不是正则表达式,而是给定的XPath路径。

用xpath从前一个请求中取。这种形式比较适合于返回为xml片段的情况。在需要获得数据的请求上右击添加一个后置处理器-->xPath Extractor。引用名称即下一个请求要引用的参数名称,如填写body,则可用${body}引用它。

Xpath一般用于返回xml用得多。

这里需要学习xpath的写法

参数:

(1)Reference Name:存放提取出的值的参数。

(2)XPath Query:用于提取值的XPath表达式。

(3)Default Value:参数的默认值。

面板介绍:

Jmeter之关联——常用提取器
Jmeter关联

【小注】正则表达式提取器和XPath Extractor的区别:

①正则表达式提取器可以用于对页面任何文本的提取,提取的内容是根据正则表达式在页面内容中进行文本匹配;

②XPath Extractor则可以提取返回页面任意元素的任意属性;

③如果需要提取的文本是页面上某元素的属性值,建议使用XPath Extractor;

④如果需要提取的文本在页面上的位置不固定,或者不是元素的属性,建议使用正则表达式提取器。