一次简单的Jmeter性能测试

一、Jmeter是什么?

Apache JMeter是Apache组织开发的基于Java的压力测试工具。
Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。
它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。
你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。

二、Jmeter有什么作用?

1.能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)。
2.完全的可移植性和100% 纯java。
3.完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样。

三、Jmeter如何安装?

1、Jmeter安装

按照网上安装教程,安装jemter、jdk,完成环境变量配置

• 安装教程地址:https://blog.****.net/sinat_32434273/article/details/81335309

2、Jmerter工具安装(JMeter Plugins Manager)

2.1、下载地址

• 下载页面(https://jmeter-plugins.org/install/Install/)
• jar下载地址(https://jmeter-plugins.org/get/)
• 说明地址(https://jmeter-plugins.org/wiki/PluginsManager/)

2.2、安装步骤

(1)下载.jar文件(jmeter-plugins-manager-0.10.jar),
(2)把该.jar放到jmeter的lib/ext目录下,
(3)重启jmeter,在选项中可以看的plugins Manager菜单
一次简单的Jmeter性能测试

3、Jmeter插件安装(PerMon插件)

Perfmon插件用来收集被压服务器的各种性能指标,例如:CPU、Memory等。

3.1 插件介绍

Perfmon插件主要包含两部分ServerAgent、The Metrics Collector Listener。
(1)ServerAgent
ServerAgent放在被压测的服务器上,是用来收集服务器相关性能指标(cpu、memory、tcp等)、以及jmx等metrics信息,然后通过 TCP or UD协议来发送给jmeter。启动后,默认监听4444端口,ServerAgent是一个文本协议,可以使用任何客户端发送/接收metrics数据信息。
(2) The Metrics Collector Listener
The Metrics Collector Listener是在jmeter上运行的插件,用来收集agent发送的metrics信息,展示图表的。

3.2 安装步骤

(1)打开Jmeter,进入插件管理Plugins Manager界面
(2)在AvailablePlugns 的tab页下拉滚动条到底部
(3)勾选jpgc-Standard Set
一次简单的Jmeter性能测试
(4)点击右下角的Apply Changes and Restart JMeter,安装好了我们就可以在监听菜单里看到各种[email protected]开头的选项了。
(5)下载ServerAgent,并上传被压服务器,下载地址(https://jmeter-plugins.org/wiki/PerfMonAgent/)
一次简单的Jmeter性能测试
(6)在被压测的服务器上解压该文件,
(7)解压后进入文件所在目录,执行startAgent.sh或startAgent.bat即可启动agent。
(8)使用perfMon中的监控项,填写被测服务器ip地址,可以查看压测过程中,服务器相关指标信息。

四、如何使用Jmeter进行性能测试?

1、使用Jmeter界面进行压力测试

(1)添加线程组
一次简单的Jmeter性能测试
(2)添加Http信息头管理器
一次简单的Jmeter性能测试
(3)编辑Http信息头管理器
一次简单的Jmeter性能测试
(4)添加Http请求取样器
一次简单的Jmeter性能测试
(5)编辑Http请求取样器
(6)添加监听器
本次性能测试使用监听器如下:察看结果树、聚合报告、[email protected] Metrics Collector、[email protected] Times Over Time、[email protected] per Second
一次简单的Jmeter性能测试

2、 在服务器上使用命令行进行压测

在服务器上安装jemter,并完成相关配置,启动jemter

(1)将jmx脚本上传到jemter所在服务器
(2)脚本所在目录,运行以下命令:jmeter -n -t test.jmx -l test.jtl
(3)将生成文件传回本地,使用jmeter界面生成图形报告

五、如何分析监听器绘制图形

若要理解监听器绘制的图形,首先要理解性能指标分别代表什么含义

1、性能指标

1.1、系统指标(与用户场景和需求相关指标)

(1)响应时间、平均响应时间
• 响应时间:对一个请求做出响应所需要的时间。
• 响应时间=网络响应时间+应用程序响应时间=(N1+N2+N3+N4)+(A1+A2+A3)
• 平均响应时间:所有请求花费的平均时间
(2)并发用户数
• 并发主要是针对服务器而言,在同一时刻与服务器进行交互(指向服务器发出请求)的在线用户数。
(3)吞吐量、吞吐率
• 吞吐量:网络传输的数据量(处理客户的请求数)
• 吞吐率:单位时间(可以是秒/分/时/天)内网络成功传输的数据量,如请求数/秒、页面数/秒
(4)TPS
• TPS(Transaction Per Second):每秒处理的事务数

1.2、资源指标(与硬件资源消耗相关指标)

(1)CPU
(2)内存Memory
(3)磁盘I/O
(4)网络I/O

2、监听器

2.1 察看结果树

勾选仅错误日志,可察看脚本运行过程中,错误请求返回信息
一次简单的Jmeter性能测试

2.2 聚合报告

聚合报告性能指标定义
• Label: 定义的HTTP请求名称
• Samples: 表示这次测试中一共发出了多少个请求
• Average: 访问页面的平均响应时间
• Min: 访问页面的最小响应时间
• Max: 访问页面的最大响应时间
• Error%: 错误的请求的数量/请求的总数
• Throughput:每秒完成的请求数
• KB/Sec: 每秒从服务器端接收到的数据量
一次简单的Jmeter性能测试
2.3 [email protected] Metrics Collector
(1)配置被压服务器ip地址
(2)启动服务器上的ServerAgent脚本
一次简单的Jmeter性能测试