简介
JMeter 是 Apache 组织使用 Java 开发的一款测试工具;
- 可以用于对服务器、网络或对象模拟巨大的负载;
- 通过创建带有断言的脚本来验证程序是否能返回期望的结果;
优点
1.开源、免费
2.跨平台
3.支持多协议
4.小巧
5.功能强大
缺点
1.不支持IP欺骗
2.使用JMeter无法验证JS程序,也无法验证页面UI,所以要和Selenium配
合来完成Web2.0应用的测试;
安装
JMeter 是使用 Java 编写的,必须安装 Java 环境:
- JDK: Java SE Development Kit (java 开发工具包,为 JAVA 程序开发提供环境支持)
- JRE: Java Runtime Environment(java 运行环境,为 JAVA 程序运行提供环境支持)
- 安装包在百度网盘我的资源-Jmeter工具环境-Jmeter配置说明
注意事项: 安装路径必须保留Java\jdk1.8.0_152
jdk1.8.0_152 是自动生成的,是java版本号,如果不保留配置环境变量会有问题
设置中文环境
启动
RESTful风格
JMeter基本使用
设置接口三要素查询所有学院信息:双击ApacheJMeter.jar 运行
1、测试计划–右键–线程–添加线程组
2、线程组–右键–取样器–http请求
3、测试计划–右键–添加监听器–查看结果树
4、点击运行,查看结果
JMeter线程组相关
进 程: 正在运行的程序
线 程: 是进程中的执行线索
线程组: 进程中有许多线程,为了方便管理,可以对线程按照性质分组,分组的结果就是线程组
PS: 三者关系,一个进程可以包含多个线程组,一个线程组可以包含多个线程
例:迅雷下载电影
喜剧片:西虹市首富、大话西游、喜剧之王
恐怖片:贞子、咒怨、生化危机
JMeter并发执行和顺序执行
- 并发执行: 多个线程同时执行
- 顺序执行: 多个线程顺序执行
选中测试计划,勾选“独立运行每个线程组”
JMeter线程组常用属性
JMeter两个特殊线程组
- setUp线程组:最优先执行的线程组
- tearDown线程组:最后执行的线程组
设置http请求默认值
http请求默认值:被复用的内容的封装
信息头管理器
新增修改实现时提交的数据是 JSON 格式的,需声明提交的数据的内容类型:
右键测试计划=>添加=>配置元件=>HTTP信息头管理器=>新增
名称:Content-Type 值:application/json;charset=utf-8
参数化–用户定义的变量(许多地方都用到的内容,可以定义成变量)
调用格式:${变量名}//变量名就是变量的别称
右键测试计划=>添加=>配置元件=>用户定义的变量
名称:变量名 例如myPath
值:被复用的数据 例如/api/departments/
参数化–CSV数据文件设置
CSV :逗号分隔值,是一种简洁且常见的数据存储格式,存储语法如下图所示
实现步骤:
1、使用 CSV 文件存储测试数据
2、编写被复用的学院新增脚本模板
注意2: 编码集使用 UTF-8 无 BOM 格式
3、关联脚本与数据(将文件数据导入脚本)
- 右键测试计划=》添加=》配置元件=》CSV数据文件设置;
- 以${变量名}的方式将数据导入模板;
- 设置循环次数为永远
用户参数
- 选中HTTP请求右键=》添加=》前置处理器=》用户参数;
- HTTP消息体数据以变量形式导入
- 线程组的线程数和用户数量一致
直连数据库
通过直连数据库让程序代替接口访问数据库,如果二者预期结果不一致,就找到了程序缺陷。
获取某条学院的名字,放在百度搜索:
1、Jmeter 不具备直连数据库功能,必须整合第三方(jar包)实现
2、配置数据库的连接
3、通过JDBC Request请求向数据库发送 SQL语句并接收提取响应结果
4、结果获取规则可以通过 Debug Sampler 组件查看
5、将提取到的响应结果,写在百度请求接口里
- 引入jar包
- 配置数据库连接参数
- 创建JDBC request
- 创建调试取样器
- 提取响应数据,应用到具体接口
断言
让程序代替人工判断响应结果是否符合预期
分类:
响应断言= 断言状态码和响应体
大小断言= 判断响应内容的字节长度
断言持续时间= 判断响应时间
步骤:
1、按照之前的实现编写测试脚本
2、为被判断的取样器添加断言组件
3、直接运行查看结果断言通过: 无提示
4、断言失败: 给出错误