JMeter三大提取器
- 一、正则表达式提取器
- 二、XPath提取器
- 三、JSON提取器
- 四、JSON属性
一、正则表达式提取器
- 使用场景: 任意格式的响应数据都可以使用正则表达式提取器;
- 操作步骤: 添加线程组-添加HTTP请求-添加后置处理器-添加正则表达式提取器
- 参数说明
- 引用名称: 存放提取出的参数名称
- 正则表达式: 左边界<.*?>右边界
- 模板: 用$$引用,表示解析出的第几个()的值,$1$表示第一个
- 匹配数字: 1表示第一个值,-1表示所有值
- 缺省值: 匹配不到时取得值
- Q1:(.?)和(.?)区别:
- (.+?):匹配一个及以上
- (.*?):匹配0个及以上
- Q2:一个表达式匹配多个参数
- Q3:提取传智播客中第五个城市作为参数传递给百度
方法一:直接匹配目标值
1、匹配数字为5,表示选择第五个匹配值
2、请求HTTP
方法二:提取匹配的所有值后,选择相应的值
1、匹配数字为-1
2、查看对应的变量
3、请求百度
- Q4:提取传智播客中第五个城市作为参数传递给百度,地址名称不同,地址/地址一等
二、XPath提取器
- 使用场景: HTML格式的响应结果数据进行提取;
- 操作步骤: 添加线程组-添加HTTP请求-添加后置处理器-添加XPath提取器
- 参数说明:
- 勾选Use Tidy:为HTML时勾选
- 引用名称:用于存储提取的参数名称
- XPath query:用于提取值的XPath表达式
- 匹配数字:0表示随机,-1表示提取所有的结果,1为第一个值
三、JSON提取器
- 使用场景: 提取JSON格式的数据;
- 操作步骤: 添加线程组-添加HTTP请求-添加后置处理器-添加JSON提取器
- 参数说明:
- 同上面两个提取器
- 同上面两个提取器
四、JSON属性
当有关联关系的两个请求在同一个线程组中时,可以使用三种提取器的变量实现数据传递;当有关联关系的两个请求在不同线程组中时,如何进行数据传递?
- JMeter属性配置函数:
- _setProperty:将值保存为JMeter属性
- _property函数:在其他线程组中使用该函数读取属性
- 操作步骤:
- 创建http请求
- 创建JSON提取器,将提取值存放在值为city的变量中
- _setProperty将city保存为JMeter属性值pro_city
- _property读取JMeter中的属性pro_city
- 创建BeanShell取样器,粘贴_setProperty生成值
- 线程组外创建http请求,变量为_property生成值
- 点击运行,可以看到非同一线程组可以用提取的变量