关联:当请求之间有依赖关系的时候,比如说一个请求的入参是另一个请求的返回数据,这时候就需要用到关联处理。
JMeter 中常用的关联方法:
--正则表达式提取器
--Xpath提取器
--Json提取器
正则表达式:就是一个公式,或者说一套规则,使用这套规则可以从任意字符串中提取出想要的数据内容
公式格式:左边界(匹配符号)右边界:可以提取出想要获取的数据内容
. :是通配符,可以代表任意字符(除换行回车)
* : 代表前面的字符出现0次或者多次
. *匹配规则:找到左边界值后,往右查找有边界,找到最后面的右边界,中间的所有数据都被记录下来
? : 代表非贪婪匹配,找到左边界后,往右查找匹配右边界,只要有匹配的右边界就停止继续查找;再次查找左边界和右边界
公式格式:左边界(.*?)右边界
案例一:
答案:
案例二:原始文本:
021-1234-1234
022-1234-1235
023-1234-1236
024-1234-1237
025-1234-1238
026-1234-1239
027-1234-1230
要求:匹配出 城市号、地区号、个人号码三组
答案:(.*?)-(.*?)-(.*?)\n
操作步骤:
测试计划 --> 线程组--> HTTP请求 --> (右键添加) 后置处理器 --> 正则表达式提取器
练习: https://www.jd.com ,获取网页的 title 值、https://www.baidu.com/ ,把获取到的 title值作为请求参数
引用名称:参数名称 引用${参数名称}
正则表达式 : 左边界 (.* * ?)右边界
模板: 用 $$ 引用起来如:$1$表示解析到的第1个值 解析到第几个值
匹配数字:0代表随机取值,-1代表全部取值,1代表取第一个值
缺省值:如果参数没有取到值,那默认给一个值让它取。
Xpath匹配规则:
作用:用于匹配HTML格式的响应数据
HTML组成:标签+属性
匹配规则://标签名
匹配特定属性的标签://a[@属性名=属性值]
位置:添加方式:测试计划---线程组---http请求---(右键添加)后置处理器
use tidy:当需要处理的页面是HTML格式时,必须选中改选项
当需要处理的页面是XML或XHTML格式时,取消选中改选项
引用名称:存放提取出的值是参数的名称
xpath Query:用于提取值的Xpath表达式
匹配数字:-1提示所有提取的结果,1表示第一个值,0表示随机
Xpath匹配规则:
作用:针对json格式的响应结果数据进行提取
位置:添加方式:测试计划---线程组---http请求---(右键添加)后置处理器
参数介绍:
Names of created variables :存放提取出的值的参数名称
Json path Expression: JSON路径表达式
Xpath匹配规则:
作用:针对json格式的响应结果数据进行提取
位置:添加方式:测试计划---线程组---http请求---(右键添加)后置处理器
当有关联关系的两个请求在同一个线程组中时,可以使用三种提取器的变量实现数据传递。
当有关联关系的两个请求在不同的线程组中时,需要借助JMeter属性。
__setProperty 函数:将值保存成 JMeter属性
__property 函数:在其他线程组中使用 property 函数 读取属性
__ setProperty 函 数执行( ( 保存 JMeter 属性 ):
—— 需 要通过 BeanShell 取样器 来执
__property 函 数 (读 取属 性)
—— 在 其他线程组中使用 property 函数