使用Jmeter工具进行性能压力测试

简介

JMeter是开源软件Apache基金会下的一个性能测试工具,用来测试部署在服务器端的应用程序的性能。近来,JMeter因为其使用简单,现在也被社区作为接口测试工具

笔者是一名Java开发人员,不是专业测试人员,对测试方面了解甚浅,所以本文只对Jmeter的使用做简单的入门教程。感谢观看,喜欢请麻烦点个赞哦~

安装

jmeter在windows/linux/macos下都可以使用。
附上Jmeter官方下载地址

download

jmeter是由Java所写,所以系统环境必须已安装Java,若未安装java请先下载,这里不做详细说明

下载成功之后打开下载目录下 /bin/jmeter.bat

使用

先附上笔者的目录图:
jmeter界面

首先添加线程组
new Thread group

添加 HTTP请求
new Http request

如果需要token就添加Http信息头管理器
header

配置

request

这里我是请求的本地项目

thread

这里有几个参数要说明:

线程数:就是模仿用户并发的数量,填写200相当于200个用户
Ramp-Up Period (in seconds):运行线程的总时间,单位是秒,相当于在填写秒内线程数执行完毕
循环次数:就是每个线程循环多少次。如果选中“永远”,则意味着测试运行起来之后就根本停不下来了,除非你把它强制咔嚓。
持续时间:可以设置调用时间,一般做时段性测试。

我现在的线程数是200,就是相当于有200个用户,运行线程的总时间是10秒。也就是说在这10秒中之内200个用户同时访问,一秒钟有20个用户同时访问,每个用户一直循环调用接口,直到60秒结束。

现在添加查看结果
result

现在点击原谅色(绿色)按钮就可以启动了~执行完成我们可以看一下结果

结果

图形结果

这里写图片描述

样本数目:也就是上面所说的请求个数,成功的情况下等于你设定的并发数目乘以循环次数
平均:每个线程请求的平均时间
最新样本:表示服务器响应最后一个请求的时间
偏离:服务器响应时间变化、离散程度测量值的大小。

吞吐量

一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢。系统吞吐能力越低,反之越高。

系统吞吐量几个重要參数:QPS(TPS)、并发数、响应时间

QPS(TPS):每秒钟request/事务 数量

并发数: 系统同一时候处理的request/事务数

响应时间: 一般取平均响应时间

(非常多人常常会把并发数和TPS理解混淆)

理解了上面三个要素的意义之后,就能推算出它们之间的关系:
QPS(TPS)= 并发数/平均响应时间 或者 并发数 = QPS*平均响应时间

聚合报告

这里写图片描述
这里可以看到很多数据,相关名词解释如下:

Sample:本次测试场景共运行多少线程;

Average:平均响应时间;

Median:统计意义上的响应时间中值;

90% line:所有线程中90%的线程响应时间都小于xx的值;

Min:响应最小时间;

Max:响应最大时间;

Error:出错率;

Throughput - 吞吐量以“requests/second、requests /minute、 requests /hour”来衡量。 时间单位已经被选取为second,所以,显示速率至少是1.0,即每秒1个请求

这里最短响应时间为171ms,最长响应时间为14961,吞吐率105.7,只测试了一分钟,性能不乐观。

察看结果数

这里写图片描述
通过察看结果树,我们可以看到每个请求的结果,其中红色的是出错的请求,绿色的为通过。

Thread Name:线程组名称

Sample Start: 启动开始时间

Load time:加载时长

Latency:等待时长

Size in bytes:发送的数据总大小

Headers size in bytes:发送数据的其余部分大小

Sample Count:发送统计

Error Count:交互错误统计

Response code:返回码

Response message:返回信息

Response headers:返回的头部信息

这里绿色的就说明请求是通过的,返回值是200,如果出现红色的×就说明请求失败,这时候可以通过右边的取样器结果和响应数据来查看结果。

表格察看结果

这里写图片描述
名词解释如下:

Sample:每个请求的序号

Start Time:每个请求开始时间

Thread Name:每个线程的名称

Label:Http请求名称

Sample Time:每个请求所花时间,单位毫秒

Status:请求状态,如果为勾则表示成功,如果为叉表示失败。

Bytes:请求的字节数

样本数目:也就是上面所说的请求个数,成功的情况下等于你设定的并发数目乘以循环次数

平均:每个线程请求的平均时间

最新样本:表示服务器响应最后一个请求的时间

偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。

在这里面可以看到,线程组名称,每个线程响应时间,返回结果是否成功,字节数等。

结尾

对于jmeter的使用笔者也是停留在入门,希望能给读者带来一定的帮助,如果觉得文章有帮助,麻烦给点个赞,或者关注我,我会一直写一些文章分享出来。

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页