Day13_0714_jmeter
1. postman和jmeter的区别
- jmeter做接口测试更专业, postman更简单
- jmeter可以发起所有请求(ftp, jdbc), postman只能发起HTTP请求
- jmeter可以用于性能测试
- jmeter用组件的方式实现前置和后置, postman用js脚本实现前后置
2. 面板设置
- 设置中文
- 第二步: 在D:\Develop\jmeter\apache-jmeter-5.4.3\bin\jmeter.properties目录下, 修改jmeter.properties文件, 在最后一行添加命令
language=zh_CN
- 选择样式
- 测试计划
- 线程组
- 一个线程是一个用户,一个线程组下面管理多个用户
3. 八大组件
3.1 常用组件
- 取样器: HTTP请求(get请求,post请求), JDBC request, Java请求(只是一个打印)
- 断言: 响应断言(状态码断言,响应文本断言), json断言(json路径断言,json值断言)
- 监听器: 查看结果树,汇总报告,聚合报告,用表格查看结果
- 配置元件: csv配置文件,HTTP信息头管理器,HTTP请求默认值,用户定义的变量(环境变量), JDBC, 计数器
- 前置处理器: 用户参数
- 后置处理器: json提取器, 正则提取器, debug后置调试程序(仅供调试使用)
- 逻辑控制器: ForEach控制器, 循环控制器(都用于遍历)
3.2 取样器
- 常用于发起http请求
3.3 逻辑控制器
- 逻辑控制
3.4 前置处理器
3.5 后置处理器
- 提取参数
3.6 断言
3.7 定时器
3.8 配置元件
- 配置项
3.9 监听器(用于查看响应结果)
4. 发起请求
4.1 get请求
4.2 监听器
4.3 HTTP请求默认值
4.4 其他功能
4.5 post请求-通过参数表格发起请求
4.6 post请求-通过form表单发起
- 在
消息体数据
输入请求参数
- 在
HTTP信息头管理器
修改Content-Type
5. 断言
5.1 状态码断言
5.2 json断言
- json key断言
- $. 获取响应的json路径
- json 值断言
- code断言
6. 参数化
6.1 什么是参数化
- 脚本中的数据从参数(变量)中获取
- jmeter中的参数化工具:
- 用户定义的变量,函数助手,用户参数,文件参数,数据库参数
6.2 用户定义的变量(环境变量)
用户定义的变量:不随用户改变而变化的变量。(被测主机的IP地址,端口号,项目url前缀)
- 整个测试计划的变量, 作用域为该测试计划
- 手动添加用户定义的变量, 作用域随变量的位置变化而不同
- 放在测试计划中, 作用域就是整个测试计划
- 放在线程组中, 作用域就是该线程组
- 放在一个请求中, 作用域就是该请求
- 使用变量, 格式为
${param}
6.3 函数助手(生成动态变量)
- 生成随机5位字符串
- 点击生成后自动复制到粘贴板, ctrl+v可以把自动生成的函数复制到参数的值上
- 生成随机数
- v函数
- 变量嵌套变量时, 需要用到v函数
- 详见Day14_Jmeter的数据库操作和提取数据 1.6.2
6.4 用户参数(生成测试用例)
线程组下所有的请求发送之前都会调用用户参数
- 创建用户参数
- 定义用户参数
- 一行是一个字段(参数)
- 一列是一个用户(用例)
- 创建请求, 使用用户参数
- 修改线程组, 用户参数里有几个用户, 线程数就是几
- 添加断言
6.5 csv文件参数
因为文件参数比用户参数更灵活(可以和其它接口测试的工具共享文件)
- 添加csv文件
6.6 数据库中的参数
-
详见Day14_Jmeter的数据库操作和提取数据 1. 连接数据库
-
配置数据库连接信息
-
JDBC请求(sql, sql的结果定义成变量)
-
通过序号获取列表中的某一个元素, 发起第二个请求
-
查询结果只有一个字段时: ForEach遍历(要指定一个变量字段(前缀))
-
查询结果有多个字段时: 循环控制器+计数器+v函数(请求中用v函数)