jmeter的介绍
1、Jmeter的基本概念
Apache JMeter是Apache组织开发的基于Java的压力测试工具。
2、我们为什么使用Jmeter
支持接口测试,压力(负载和压力)测试等多种功能,支持录制回放,
入门简单相较于自己编写框架活其他开源工具,有较为完善的UI界面,便于接口调试
多平台支持,可在Linux,Windows,Mac上运行
支持多协议
3、Jmeter的作用
- 接口测试
- 性能测试
- 压力测试
- Web自动化测试
- 数据库测试
JEmeter的操作
1、设置中文模式
2、jmeter功能介绍
线程组
1、线程组主要包含三个参数:线程数、准备时长(Ramp-Up Period(in seconds))、循环次数。
2、线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。
3、准备时长(秒):设置的虚拟用户数需要多长时间全部启动。如果线程数为20 ,准备时长为10 ,那么需要10秒钟启动20个线程。也就是每秒钟启动2个线程。
4、循环次数:每个线程发送请求的次数。如果线程数为20 ,循环次数为100 ,那么每个线程发送100次请求。总请求数为20*100=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。
5、调度器:设置线程组启动的开始时间和结束时间(配置调度器时,需要勾选循环次数为永远)
6、持续时间(秒):测试持续时间,会覆盖结束时间
7、启动延迟(秒):测试延迟启动时间,会覆盖启动时间
创建HTTP请求
作用:用来向服务器发送HTTP/HTTPS请求
参数说明(英文模式下):
1、Name:组件名,可以修改
2、Comment:注释信息,可写可不写
3、Web Server:
- Protocol[http]:不写就是默认的HTTP,可以根据实际情况指定
- Server Name or IP:IP或者域名,比如cn.bing.com(不要加http://,默认就带;不能有路径)
- HTTP Request:
- Port Number:HTTP默认为80,https为443
- Path:/表示根目录
- Content encoding:内容编码,如果请求有乱码的话可以将其配置为UTF-8或者ANSI
下图为中文形式
设置监听器
察看结果树:
- 调试利器。想必大家也都经常用,不做介绍。有点类似我们的抓包,可以看到request以及response信息。
Summary Report/汇总报告
- Summary Report 为测试中的每个不同命名的请求创建一个表行。这与聚合报告类似,只是它使用更少的内存。
参数说明:
- Label 取样器别名,如果勾选Include group name ,则会添加线程组的名称作为前缀
- #Samples / #样本 取样器运行次数
- Average / 平均值 请求(事务)的平均响应时间
- Min / 最小值 请求的最小响应时间
- Max / 最大值 请求的最大响应时间
- Std. De v/ 标准偏差 响应时间的标准方差
- Error% / 异常% 事务错误率
- Throughput / 吞吐量 吞吐量 也就是TPS
- Received KB/sec / 接收KB/sec 每秒收到的千字节
- Sent KB/sec / 发送KB/sec 每秒发送的千字节
- Avg. Bytes / 平均字节数 响应平均流量
聚合报告
与Summary Report类似,但是表格中的内容有些许区别
参数说明
- Label 取样器别名,如果勾选Include group name,则会添加线程组的名称作为前缀
- #Samples/#样本 取样器运行次数
- Average/并均值 请求(事务)的平均响应时间
- Median中位数 中位数
- 90% Line/90%百分位 90%用户响应时间
- 95% Line/95%百分位 90%用户响应时间
- 99% Line/99%百分位 90%用户响应时间
- Min/最小值 最小响应时间
- Max/最大值 最大响应时间
- Error/异常 错误率
- Throughput/吞吐量 吞吐率
- Received KB/sec/接受 KB/sec 每秒收到的千字节
- Sent KB/sec/发送 KB/sec 每秒收到的千字节
Backend Listener/后端监听器
Aggregate Graph/汇总图
通过Aggregate Graph 我们可以看到表格显示的结果与图形结果,看着挺复杂,其实稍微翻译一下就知道,绝大多数都是对图形的设置
Column settings(列设置)
-
Columns to display 选择要在图表中显示的列
-
Rectangles color 单击右侧颜色矩形打开弹出对话框,选择自定义颜色。(就是点击)
-
Foreground color 允许更改值文本颜色
-
Value font 允许定义文本的字体设置
-
Draw outlines bar? 在条形图上绘制或不绘制边界线
-
Show number grouping? 是否显示Y轴标签中的数字分组
-
Value labels vertical? 更改值标签的方向。(默认为水平)
-
Column label selection 按结果标签过滤
-
Title
-
在图表的头部定义图表的标题
-
Graph size
根据当前JMeter窗口大小的宽度和高度计算图形大小。使用“ 宽度”和“ 高度”字段定义自定义大小。单位是像素。 -
X Axis settings
定义X轴标签的最大长度(以像素为单位) -
Y Axis settings
为Y轴定义自定义最大值。 -
Legend
定义图表图例的放置和字体设置
断言结果
断言结果正确时,无提示;断言结果错误时,提示响应断言判断条件。
Comparison Assertion Visualizer
配合Compare Assertion使用
生成概要结果
- 生成到目前为止测试运行的摘要到日志文件和/或标准输出。简单的说,可以通过以下两个界面看到,当然也不止这两个。
图形结果
占用系统CPU,所以性能测试时候不推荐使用。
JSR223 Listener
邮件观察仪
- 如果测试运行从服务器收到太多失败的响应,则可以将邮件程序可视化工具设置为发送电子邮件,这个不错,起到及时通知效果,下面我使用的是163 SMTP进行测试。可以实现。
Response Time Graph
响应时间图形监听器。有点和我们之前介绍的Aggregate Graph类似
参数解释
Interval (ms) X轴间隔的时间(以毫秒为单位)
Sampler label selection 按结果标签过滤。可以使用正则表达式
Title 在图表的头部定义图表的标题
Line settings 定义线条的宽度
Graph size 根据当前JMeter窗口大小的宽度和高度计算图形大小。使用“ 宽度”和“ 高度”字段定义自定义大小。单位是像素。
X Axis settings 自定义X轴标签的日期格式
Y Axis settings 为Y轴定义自定义最大值(以毫秒为单位)
Legend 定义图表图例的放置和字体设置
保存响应到文件
Simple Data Writer
- 用来记录取样器响应结果,不会以图形方式显示。配合NON GUI模式使用
用表格察看结果
- 和聚合报告类似。