文章目录
- 前言
- 四、信息头管理器
- 五、Jmeter参数化
- 5.1 用户自定义的变量
- 5.2 csv批量添加
- 5.3 用户参数
- 5.4 随机数函数
- 5.5 计数器函数
- 5.6 时间函数
- 六、Jmeter断言
- 6.0 断言介绍
- 6.1 响应断言
- 6.2 大小断言
- 6.3 持续时间断言
- 6.4 Json断言
- 七、Jmeter直连数据库
- 总结
前言
四、信息头管理器
作用:
新增修改实现时提交的数据是 JSON 格式的,需声明提交的数据的内容类型。即:只要提交数据是JSON格式,就需要创建信息头管理器。
创建步骤:
测试计划--添加配置元件--信息头管理器
图示说明:
注意:只要前面有🔧一样标志的一般都放到最上面
举实例说明:
我们通过测试学院-新增接口,来使用信息头管理器来提交的数据是 JSON 格式的http请求。
(1)创建信息头管理器,输入名称和值(固定的)。
名称:Content-type 值:application/json;charset=utf-8
(2)在http请求中提交JSON格式的数据。
(3)查看结果树
五、Jmeter参数化
(1)定义:使用不同的测试数据,调用相同的测试方法进行测试
(2)本质:实现测试数据与测试方法的分离
(3)实现方式:
- 用户定义的变量——全局变量
- 用户参数——为每个用户分配不同的参数值
- CSV数据文件设置——文件方式参数化
- 函数——随机数据
- 数据库
5.1 用户自定义的变量
(1)使用场景:定义全局变量
(2)使用步骤:
- 添加线程组
- 添加配置原件--添加用户定义的变量。格式:变量名 - 变量值
- 添加HTTP请求,引用定义的变量名。格式:${变量名}
- 查看结果树
(3)图示说明:
(4)举例说明:
定义一个用户自定义一个HTTP请求中路径的变量,并且在HTTP请求中引用自定义的代表路径的变量。
图示步骤说明:
(1)定义HTTP请求中路径的变量。
(2)在http请求中引用该路径变量
(3)查看结果树:
5.2 csv批量添加
CSV :逗号分隔值,是一种简洁且常见的数据存储格式实现步骤:1、使用 CSV 文件存储测试数据。2、编写被复用的学院新增脚本模板注意2: 编码集使用 UTF-8 无 BOM 格式3、编辑设置csv文件属性注意:把线程组中的循环次数设置为永远。(方便知道文件中有多少条数据,不用自己数)
实例说明:
使用csv文件进行存储测试数据,然后设置csv数据文件,最后以${变量名}的方式传入http请求当中,将线程组循环次数设置为永远,最后修改csv文件属性。
(1)使用 CSV 文件存储测试数据:
(注意需要用英文逗号分隔开变量名)
(2)创建csv数据文件格式,并且修改其属性。
1.创建csv数据文件。
2.修改其属性参数。
3.http请求中调用变量。
4.查看结果树
5.3 用户参数
实现步骤:1、编写被复用的学院新增脚本模板2、使用 用户参数存储测试数据3、将数据导入脚本模板4、设置执行次数
实例说明:
学院新增脚本模板设置用户参数。步骤1:创建用户参数模块
步骤2:设置用户参数信息。
注意:
数据设计规则:
第一列声明每条数据的字段名称,第二列以及以后,每一列对应一条数据。
步骤3:将数据导入http脚本模板(以${变量名}方式)
步骤4:设置执行次数
5.4 随机数函数
函数使用步骤:
1.打开函数助手
2.选择所需函数
3.为函数传参
4.生成并复制调用格式
5.函数运行结果预览
图示说明:
随机数函数使用:
__Random 随机数函数参数1:取值范围最小值(包含)参数2:取值范围最大值(包含)
举实例说明:
放到http请求名称后面用于设计随机数排序http请求。
(1)设置函数配置:
(2)添加在请求后面:
5.5 计数器函数
计数器函数使用:
__counter计数器函数
TRUE(每个用户都有自己的计数器)
FALSE(所有用户共用一个计数器)
举实例说明:
(1)TRUE(每个用户都有自己的计数器)
(2)FALSE(所有用户共用一个计数器)
5.6 时间函数
时间函数使用:
__time 时间函数获取当前时间的函数无参: 获取的是距离 1970/01/01 00:00:00 的毫秒值参数1: yyyyMM_dd HH:mm:ss 格式化成 年\月_日 时:分:秒 格式
举实例说明:
(1)函数设置配置:
(2)函数设置配置:
六、Jmeter断言
6.0 断言介绍
(1)断言定义 :让程序代替人工判断响应结果是否符合预期(2)分类 :
- 响应断言 = 断言状态码和响应体
- 大小断言 = 判断响应内容的字节长度
- 断言持续时间 = 判断响应时间
(3)断言步骤:
- 1、按照之前的实现编写测试脚本
- 2、为被判断的取样器添加断言组件
- 3、直接运行查看结果
- 断言通过: 无提示
- 断言失败: 给出错误
6.1 响应断言
响应断言 = 断言状态码和响应体
图示说明:
相关配置解析:
响应文本:来自服务器的响应文本,即主体
响应代码:响应的状态码,例如:200
响应信息:响应的信息,例如:OK
响应头:响应头信息
请求头:请求头信息
URL样本:请求URL
文档(文本):响应的整个文档
忽略状态:忽略返回的响应状态码
包括:文本包含指定的正则表达式
匹配:整个文本匹配指定的正则表达式
相等:整个返回结果的文本等于指定的字符串(区分大小写)
字符串:返回结果的文本包含指定的字符串(区分大小写)
否:取反
或者:如果存在多个测试模式,勾选代表逻辑或,不勾选代表逻辑与
测试模式:即填写你指定的结果(可填写多个)
举实例说明:
判断http请求中的状态码是否为200.
6.2 大小断言
大小断言 = 判断响应内容的字节长度
图示说明:
6.3 持续时间断言
(1)作用:
检查HTTP请求的响应时间是否超出要求范围
(2)使用步骤:
添加线程组->添加HTTP请求->添加断言持续时间设置持续时间->添加查看结果树.
图示说明:
6.4 Json断言
(1)使用场景:
对HTTP请求的响应结果为JSON格式时,可以使用JSON断言
(2)使用步骤:
添加线程组->添加HTTP请求->添加JSON断言配置参数->添加查看结果树查看断言结果
图示说明:
相关配置解析:
- Assert JSON Path exists:用于断言的JSON元素的路径(实际结果)
- Additionally assert value:如果您想要用某个值生成断言,请选择复选框
- Match as regular expression:使用正则表达式断言
- Expected Value: 期望值(期望结果)
- Expect null:如果希望为空,请选择复选框
- Invert assertion (will fail if above conditionsmet):反转断言(如果满足以上条件则失败)
七、Jmeter直连数据库
(1)直连数据库的作用:
- 用作请求的参数化。例如:登录时需要的用户名可以从数据库中查询获取
- 用作结果的断言。例如:添加购物车下单时,检查接口返回的订单号,是否与数据库中生成的订单号一致
- 清理垃圾数据。例如:添加商品(商品名/编号等不能重复),再执行该脚本不能成功,需要在下次执行前删除该商品数据
- 准备测试数据。例如:通过数据库来准备大量的性能测试数据
(2)直连数据库的步骤:
步骤一.添加Mysql驱动jar包
步骤二.配置数据库连接信息
添加步骤:测试计划->线程组->配置元件->JDBC Connection Configuration
步骤三.添加JDBC请求
步骤方法:
测试计划->线程组->取样器->JDBC Request