01. jmeter关联
正则表达式介绍:
应用场景:正则表达式提取器可以提取任意格式的响应数据
正则表达式提取器步骤
1、添加线程组
2、添加HTTP请求 - 传智播客的首页
3、添加正则表达式提取器并配置
4、添加HTTP请求 —— 百度,在参数中引用正则表达式提取器中定义的变量title:${title}
5、添加查看结果树。
xpath提取器:
应用场景:只能适用于响应消息为HTML格式的情况
步骤:
-
添加线程组
-
添加HTTP请求——传智播客首页
-
添加xpath提取器
- 勾选Use Tidy
- 填写引用名称:参数名
- Xpath路径
-
添加HTTP请求——百度首页
- 引用xpath提取器中定义的参数名:${参数名}
-
添加查看结果树
json提取器:
应用场景:适用于返回的数据类型为JSON格式的情况 参数介绍:
步骤:
-
添加线程组
-
添加HTTP请求——天气
-
添加JSON提取器
- 参数名
- JSON路径
-
添加HTTP请求——百度,
- 应用JSON提取器中定义的参数名
-
添加查看结果树。
跨线程组关联:
跨线程组关联指的是多个请求之间有关联关系(即一个请求的参数需要使用前面请求的响应),但是两 个请求不在一个线程组内,此时使用提取器无法完成关联,需要使用Jmeter属性来完成数据的传递。
步骤:
- 添加线程组1,添加HTTP请求——传智播客
- 添加JSON提取器
- 添加Bean Shell取样器(填写setProperty函数——将提取器提取出来的值赋值给Jmeter属性)
- 添加线程组2,添加HTTP请求——百度
- 引用前面返回的城市信息(使用property函数——将Jmeter属性值读取出来)
- 添加查看结果树
02.jmeter自动录制脚本
自动录制脚本
原理:
Jmeter在客户端和服务器之间做代理。收到所有的请求和响应数据后,Jmeter再进行逆向解析的动作, 将数据报文转化为脚本。
jmeter脚本录制步骤
1、在测试计划下,添加HTTP代理服务器
2、设置自己PC机的代理
3、点击启动,进入浏览器进行相关操作,脚本会自动生成并存放在指定的线程组下。
配置过滤规则
Cookie管理器:
管理cookie:自动将cookie信息添加到后续的所有请求中。
登录及后续的相关操作时,需要提前添加HTTP Cookie管理器
03.jemeter操作数据库
jmeter直连数据库
准备工作:
-
启动数据库
-
加载mysql的JDBC驱动
- 方法1:在测试计划下方的位置,点击浏览添加JDBC的jar包
- 方法2:将JDBC的jar拷贝到lib目录,并重启jmeter
-
配置JDBC连接池的参数
编写JDBC脚本步骤(搜索指定商品,在返回结果中检查是否包含指定商品的ID的详情URL):
1、添加JDBC Request请求
- JDBC连接池名称:必须与“JDBC连接池”中的连接名一致
- 要执行的sql语句
- Variable Name中:写明要保存的数据的参数名
2、添加HTTP请求 —— 搜索请求
- 参数为中文时,将参数写到下方参数位置,并勾选上“编码”
3、添加响应断言:
- 在响应断言中配置要检查的数据内容。
- 注意:应用JDBC Request查询出的结果时,需要加上索引(因为JDBC查询的结果保存为一个列表)
04.逻辑控制器
什么是逻辑控制器:
控制jmeter脚本的执行顺序
如果(if)控制器:
第一种配置方法:
第二种配置方法:
勾选上Interpret Condition as Variable Expression,判断条件需用使用jexl3函数。 (使用这个函数来进行判定时,Jmeter自身的执行效果要高一些)
循环控制器:
控制子节点下的HTTP请求的执行次数
循环控制器与线程组中的循环次数的对比:
-
循环控制器只控制其子节点下的HTTP请求,线程组对所有的请求都有效
-
假如线程组循环次数为2,循环控制器次数为3,则循环控制器下的请求执行次数为:2*3
4.ForEach控制器:
与用户定义的变量或者正则表达式提取器配合使用,循环读取用户定义的变量或者正则表达式结果中的所有数据。
配置参数
与用户定义的变量配合使用
1、添加用户定义的变量:
- 参数名:固定前缀 + 连续的数字后缀
2、添加ForEach控制,并配置
3、在ForEach控制器下方添加HTTP请求,并引用ForEach读取的数据${word}
4、添加查看结果树
与正则表达式配合使用:
1、添加HTTP请求——itcast首页
2、添加正则表达式提取器,提取出itcast响应中所有的地址相关的数据,并保存为参数area(列表数 据)
3、添加ForEach控制器,循环提取area列表中的每一个地址信息
4、在ForEach控制器下添加一个HTTP请求——百度,引用ForEach控制器中定义的变量${word},作为 参数
5、添加查看结果树