02. JMeter基本使用
02. JMeter基本使用
1. JMeter环境安装
1. 安装JDK
下载JDK
http://www.oracle.com/ 提示:下载时注意电脑系统是32位或64位
安装JDK
双击安装包进行安装, 所有步骤选择默认选项即可
配置环境变量
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_151 在环境变量Path中添加: %JAVA_HOME%\bin;
校验
1、打开“cmd ”命令行 2、输入 java -version,校验命令能否正常执行以及版本信息是否一致
2. 安装JMeter
下载JMeter
- 地址: https://jmeter.apache.org/download_jmeter.cgi
- 提示:Jmeter版本与JDK版本匹配
安装JMeter
把下载的安装包,解压到某一目录即可; 提示:安装目录中不要出现中文/空格
配置环境变量
JMeter_HOME=> F:\Jmeter\apache-jmeter-5.1.1 在环境变量Path中添加: 变量名:JMETER_HOME 变量值:Jmeter安装目录 PATH变量值:%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar; %JMETER_HOME%\bin
启动验证
进入JMeter安装目录下的bin目录 1、双击 jmeter.bat 2、双击 ApacheJMeter.jar 3、命令行输入 方式一:java -jar ApacheJMeter.jar 方式二:jmeterw - 注意:任意一种方法能打开即可
2. 功能概要
1. 常用文件目录介绍
- bin目录
- 存放可执行文件和配置文件
docs目录
- JMeter的api文档,用于开发扩展组件
printable_docs目录
- 用户帮助手册
lib目录
- 存放JMeter依赖的jar包和用户扩展所依赖的jar包
2. JMeter界面的汉化
方式一:临时性
启动JMeter-> 选择菜单 Options -> Choose Language->Chinese (Simplified)
方式二:永久性
修改配置文件:找到jMeter安装目录下的bin目录打开jmeter.properties文件 把第37行修改为 language=zh_CN 重启JMeter即可 提醒:修改配置文件后必须重启jmeter才能使配置生效
3. 修改主题
JMeter默认主题是黑色的,可以通过以下步骤修改:
启动JMeter -> 选择菜单‘选项’ -> 外观 -> Windows(选择自己喜欢的主题即可)
3. 元件及作用域
1. Jmeter元件和组件的介绍
元件的基本介绍
元件:多个类似功能组件的容器(类似于类)
组件的基本介绍
组件:实现独立的某个功能(类似于方法)
如下接口自动化脚本的实现过程对应着Jmeter哪个元件?
| 初始化测试数据 | 配置元件 | | ------------------------------------ | -------------- | | 对请求参数进行赋值 | 前置处理器 | | 调用GET/POST方法发送请求 | 取样器 | | 提取响应中特定字段的值 | 后置处理器 | | 对提取出来的值与预期结果进行对比 | 断言 | | 在控制台查看脚本运行的结果 | 监听器 |
元件与组件有什么关系?
- 元件:多个类似功能组件的容器(类似于类)
- 组件:容器中实现独立的某个功能(类似于方法)
2. 元件的作用域
1. 元件的作用域
- 元件的作用域是靠测试计划的树形结构中元件的父子关系来确定的。
- 提示:所有的组件都是以取样器为核心来运行的。组件添加的位置不同,生效的取样器也不同
2. 作用域的原则:
取样器:核心,不和其他元件相互作用,没有作用域
逻辑控制器:只对其子节点中的取样器和逻辑控制器起作用
其他元件:
如果是某个取样器的子节点,则该元件只对其父节点起作用
如果其父节点不是取样器,则其作用域是该元件父节点下的其他所有后代节点(包括子节点,子节点的子节点等)
定时器1 -> HTTP请求1 -> 定时器1 -> 定时器2 -> HTTP请求2 -> 定时器1 -> 定时器3 -> HTTP请求3 10s 10s 5s 10s 2s
3. 元件的执行顺序
- 同一个作用域下不同类型元件
- 配置元件(config elements)
- 前置处理程序(Per-processors)
- 定时器(timers)
- 取样器(Sampler)
- 后置处理程序(Post-processors)
- 断言(Assertions)
- 监听器(Listeners)
- 同一个作用域下多个相同类型元件
- 按照在测试计划中从上到下的顺序依次执行
4. Jmeter第一个案例脚本- 基本组成
1. 案例
需求:使用JMeter访问百度首页接口,并查看请求和响应信息
步骤:
1.启动JMeter
2.在‘测试计划’下添加‘线程组’
3.在‘线程组’下添加‘HTTP请求’取样器
4.填写‘HTTP请求’的相关请求数据
5.在‘线程组’下添加‘查看结果树’监听
6.点击‘启动’按钮运行,并查看结果
- 注意:一定小心,开头、结尾处不能含有空格
2. 线程组
- 作用
- 线程组就是控制JMeter用于执行测试的一组用户
- 位置
- 右键点击‘测试计划’ --> 添加 --> 线程(用户) --> 线程组
- 特点
- 模拟多人操作
- 线程组可以添加多个,多个线程组可以并行或串行
- (默认并行执行,可通过测试计划中的‘独立运行每个线程组’进行配置并行或串行)
- 取样器(请求)和逻辑控制器必须依赖线程组才能使用
- 线程组下可以添加其他元件下组件
3. 线程组分类
普通线程组
- 普通的、常用的线程组,可以看做一个虚拟用户组,线程组中的每一个线程都可以理解为一个虚拟用户
- 用于执行测试用例,可以有1个或者多个(并行/串行)
setUp线程组
- 一种特殊类型的线程组,可用于执行预测试操作(预测试操作,所有脚本之前执行)
tearDown线程组
- 一种特殊类型的线程组,可用于执行测试后工作(测试后操作,所有脚本之后执行)
说明:
默认并行执行,查看结果树中的普通线程组请求,请求顺序取决于于收到对应请求响应的顺序,可在“测试计划”->"独立运行每个线程组" 改为串行执行
4. 线程组 - 参数详解
如下场景如何设置线程组?
模拟10个用户并行执行:
模拟10个用户5s内启动完成:
模拟2个用户各循环3次:
模拟2个用户运行30s:
模拟2个用户等待10s后开始执行:
案例分析
- 使用1个线程组,添加HTTP请求 (百度)
- 配置线程数为2,循环次数为3时,运行观察结果
- 配置线程数为3,循环次数为2时,运行观察结果,对比是否有不同
- 相同点: 从请求数量来说,是完全相同的
- 不同点: 场景不同
- 线程数: 代表用户数,即性能测试时的负载量 (线程数为2比线程数为3对应的负载量小)。
- 循环次数: 代表时间,即性能测试时的运行时间(循坏次数3比循环次数2对应的时间长)
- 使用1个线程组,添加HTTP请求 (百度)
5. Jmeter发送HTTP请求
作用
- 向服务器发送http及https请求
位置
- 选中线程组 -> 右键 -> 添加 -> 取样器 -> HTTP请求
发送GET请求(请求参数在路径中)
- URL
- 协议、服务器域名或IP、端口(http:默认80,https:默认443)、方法(GET)、路径、编码格式
- 参数
- 在路径后添加参数**。格式:?键名=键值&键名=键值**
- 在参数列表中添加参数。格式:名称(键名)、值(键值)
- URL
发送POST请求(请求参数在消息体数据中)
- URL
- 协议、服务器域名或IP、端口、方法(POST)、路径、编码格式
- 参数
- 在消息体数据中添加请求体(form/json)
- 在参数列表中添加参数(form)
- URL
- 练习
编写Jmeter脚本,访问百度
案例一:
GET请求,URL为http://www.baidu.com/S?wd=test
要求:使用HTTP请求 - 路径来传递get请求参数
案例二:
GET请求,URL为https://www.baidu.com/S?wd=test
要求:使用HTTP请求 -参数列表来传递get请求的参数
案例三:
POST请求,URL为https://www.baidu.com/S,请求体为:wd=test(form表单)
要求:使用HTTP请求 - 参数列表来传递POST请求的form格式参数
案例四:
POST请求,URL为http://www.baidu.com/S,请求体为:wd=test(form表单)
要求:使用HTTP请求 – 消息体数据来传递POST请求的form格式参数
1.如何配置来发送HTTP请求?
发送GET请求(请求参数在路径中):
URL:协议、服务器域名或IP、端口、方法(GET)、路径、编码格式
参数:
在路径后添加参数。格式:?键名=键值&键名=键值
在参数列表中添加参数。格式:名称(键名)、值(键值)
发送POST请求(请求参数在消息体数据中):
URL:协议、服务器域名或IP、端口、方法(POST)、路径、编码格式
参数:
在消息体数据中添加请求体(form/json)
在参数列表中添加参数(form)
6. 查看结果树
作用
- 查看HTTP请求的请求和响应结果
位置
- 选中测试计划/线程组->右键->添加->监听器->查看结果树
组成
取样结果:查看响应信息头信息、响应状态码
请求:查看请求相关信息(url、方法、参数)
响应:查看响应信息
查看结果树中的HTTP请求中,有多个子的HTTP请求
原因分析
第一个HTTP请求中,URL错误,导致服务器产生了重定向,提供了新的URL路径
JMeter会自动发送第二个HTTP请求 (使用第一个HTTP请求中返回的URL路径)
点击最外层HTTP请求时,显示的内容与最后一个HTTP请求的请求和响应数据一致
解决结果出现乱码
- 找到jMeter安装目录下的bin目录
- 打开jmeter.properties 文件, 修改配置 sampleresult.default.encoding=UTF-8
- 重启JMeter即可