失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 性能测试工具 - JMeter

性能测试工具 - JMeter

时间:2023-05-10 08:54:31

相关推荐

性能测试工具 - JMeter

导航

我们为什么需要性能测试工具?JMeter简介JMeter安装JMeter常用功能介绍1.添加线程组2.添加HTTP请求3.添加HTTP请求头管理器4.添加各类请求结果查看组件5.运行JMeter聚合报告

我们为什么需要性能测试工具?

因为web应用,总是开放给多人一起使用的,不少功能就会出现并发的情况。为了测验并发时,系统功能是否正常,我们需要模拟并发的场景,对系统进行并发测试。

那么难题就出现了,如何模拟并发场景呢?

找一千名测试人员一起点击?快速点击发送按钮,连点一千次?写个for循环?

这些解决思路都不太可行,首先就是操作上不可行,然后就算是以for循环等形式,也不是真正意义上的并发,而是“串发”。若想通过java代码实现真正的并发场景,那需要分两步走:1. 开启n个线程,并加上闭锁;2. 待所有线程都准备好后,按下开启按钮。

为了快速、便捷的发送并发请求,我们厄需一个工具!当我们去市场上寻求这类工具时,Apache JMeter 这两个单词抢占了搜索头条,没错,又是Apache软件基金会的开源项目,YYDS,真香!

JMeter简介

Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具,用于对软件做压力测试。

JMeter 最初被设计用于 Web 应用测试,但后来扩展到了其他测试领域,可用于测试静态和动态资源,如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库和 FTP 服务器等等。JMeter 可对服务器、网络或对象模拟巨大的负载,在不同压力类别下测试它们的强度和分析整体性能。另外,JMeter 能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证程序是否返回了期望结果。为了最大限度的灵活性,JMeter 允许使用正则表达式创建断言。

JMeter的优势:

1.能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)。2.完全的可移植性和100% 纯java。3.完全 Swing 和轻量组件支持(预编译的JAR使用 javax.swing.*)包。4.完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样。5.精心的GUI设计允许快速操作和更精确的计时。6.缓存和离线分析/回放测试结果。

JMeter安装

JMeter是开源软件,安装起来特别简单,直接前往官网下载:/download_jmeter.cgi

需要注意本地需安装有其要求的JDK版本。

将下载的压缩文件解压后,放在任意目录下即可。

然后前往bin目录下,运行 ApacheJMeter.jar 或 jmeter.bat 均可以打开。个人更建议以可执行jar包的形式打卡,以bat脚本打开会有黑窗口,需一直保留。并且以可执行jar包打开,会自动识别系统语言,来切换JMeter的语言。

JMeter常用功能介绍

这里以一个接口测试的案例,介绍JMeter的常用功能。

对 http://127.0.0.1:8080/checkTotalAmount 接口进行测试,接口的请求方式为POST,入参为json格式,出参也为json格式。

1.添加线程组

其中setUp线程组用于测试准备,在测试前执行;teardown线程组用于测试清理工作,在测试结束后执行。

我们这里创建普通线程组即可。

然后我们对线程组的三个重要属性进行设置,这三个属性决定了测试的并发量:

线程数:即开启多少个线程来跑请求,多个线程见互不干扰;Ramp-Up时间:设置启动所有线程所需要的时间,设置不为0时,均匀启动;设置为0,则表示所有线程同时启动。循环次数:设置每个线程里串行执行多少个请求,若勾选永远,则会一直执行下去;

2.添加HTTP请求

添加HTTP请求,并填入协议、地址、端口、请求方式、请求数据信息。

这里我的消息里,使用了JMeter的随机数函数,表示随机产生[10,20]之间的整数。

3.添加HTTP请求头管理器

添加HTTP请求头管理器,并在其中配置: 名称为Content-Type,值为application/json

4.添加各类请求结果查看组件

JMeter提供了许多监听器,用于监听并展示请求的结果。

基本都会用到的监听器有三个:

察看结果树:可以查看所有线程发起的每个请求的信息,包括请求信息与响应信息;聚合报告:以表格展示性能指标的结果;图形结果:以散点图展示性能指标的结果;

5.运行

点击上方的启动,则会开始执行。

JMeter聚合报告

聚合报告是使用JMeter进行性能测试的重要结果,这里对每个指标进行解析:

Label:请求的名称,每个HTTP请求为一行,添加了多少个HTTP请求,则会有多少行+汇总行;样本:发起的请求总数,为 线程数 * 循环次数;平均值:请求的平均响应时间,单位是毫秒;中位数:请求响应时间的中位数,单位是毫秒;90%百分位:90%的请求响应时间,均小于这个数;(就是将所有的请求时间从小打到排列,取处于第90%数据量的数值;则上一个中位数指标,可以理解为50%百分位)95%百分位:95%的请求响应时间,均小于这个数;99%百分位:99%的请求响应时间,均小于这个数;最小值:最快的响应时间;最大值:最慢的响应时间;异常:请求出现错误/异常的比例,如响应状态码不为200、丢包等;吞吐量:每秒完成的请求数;接收:每秒从服务器接收的数据量;发送:每秒发送至服务器的数据量;

如果觉得《性能测试工具 - JMeter》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。