使用JMeter进行压力测试

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

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


1. 下载JMeter

官方网站下载最新版本: http://jmeter.apache.org/download_jmeter.cgi ,目前最新版是Apache JMeter 2.11,需要java环境才能运行,这里就不一一介绍了.


2. 运行JMeter

进入JMeter主目录的bin子目录下 点击jmeter.bat文件即可运行(启动有点慢哦,耐心等待,要保证配置了jdk,否则不能运行)


3. 模拟高并发进行压力测试

测试计划的排列顺序的顺序是有讲究的,见最后的顺序解析

1、建立线程组 
要想模拟高并发,线程组是必不可少的,所以首先我们建立一个线程组

创建一个线程组 
创建一个线程组


配置线程组 
配置线程组

参数说明,我这里是建立了300个线程,Ramp-Up Period参数是为了防止一下子创建300个线程导致程序假死而设计的,意思是在多少秒之内建立起所有的线程。

2、 建立一个循环控制器 
我们用来进行压力测试,不可能只是让每一个线程进行一次操作吧.肯定是让每一个线程一直循环的往下跑.我这里就设置为永远了.手动进行停止才生效.

新建循环控制器 
新建循环控制器


循环控制器配置 
循环控制器配置

3、设置http信息头管理器 
(这一步也可以省去),因为我测试的网站做了访问限制,只有浏览器才能进行访问,所以必须指定User-Agent去模拟浏览器进行请求. 
新建http信息头管理器 
新建http信息头管理器


http信息头管理器配置 
http信息头管理器配置

4、设置一个固定定时器 
这一步的作用是让线程没过多少毫秒进行下一次操作,我这里设置500毫秒也就是每一个线程1秒进行2次操作 
新建固定定时器 
新建固定定时器


固定定时器配置 
固定定时器配置

5、设置一个http请求 
这里的参数都很好理解,需要注意的是 服务器名称或ip这里我们也可以填写域名 还有路径这里不需要加域名或者服务器ip. 
添加HTTP请求 
添加HTTP请求


HTTP请求配置 
HTTP请求配置

这里我们是让所有线程一直请求同一个链接,我们也可以让所有线程随机去请求我们指定的链接 
我们在菜单 选项->函数对话框->选择__StringFromFile(注意:是两个下划线,不是一个下划线的那个)

函数助手

然后在第一个参数填写我们的链接文件的全路径,链接的文件格式如下 
/command 
/linuxrumen 
/program 
/jianzhan 
/command/cat.html 
/command/chmod.html 
/command/lsattr.html 
然后点击函数对话框右下角的生成,将生成的url复制到我们开始填写路径的地方就可以了,这时线程会随机对文件中的路径进行访问

HTTP请求

6、 图形结果

图形结果监视器 
图形结果监视器


图形结果 
图形结果

7、 聚合报告 
添加方法如添加图形结果

聚合报告 
聚合报告

8、 用表格查看结果 
添加方法如添加图形结果

用表格查看结果 
用表格查看结果

9、 查看结果数 
添加方法如添加图形结果

查看结果数 
查看结果数

10、 测试计划的排列顺序

测试计划的排列顺序 
测试计划的排列顺序

这里的顺序是有讲究的,从结构上可以看出,也可以这么类比

创建了一个线程组 
for(循环多少次){ 
设置请求头 
设置sleep时间 
进行http请求 
}


4. 结果的分析

1、 聚合报告

Samples – 本次场景中一共完成了多少个Transaction 
Average – 平均响应时间 
Median – 统计意义上面的响应时间的中值 
90% Line – 所有transaction中90%的transaction的响应时间都小于xx 
Min – 最小响应时间 
Max – 最大响应时间 
PS: 以上时间的单位均为ms 
Error – 出错率 
Troughput – 吞吐量,单位:transaction/sec 
KB/sec – 以流量做衡量的吞吐量

2、 以树状列表查看结果 
我们可以看到很详细的每个transaction它所返回的结果,其中红色是指出错的transaction,绿色则为通过的。 
如果你测试的场景会有很多的transaction完成,建议在这个Listener中仅记录出错的transaction就可以了。要做到这样,你只需要将Log/Display:中的Errors勾中就可以了。


相关文章
|
3月前
|
XML jenkins 机器人
JMeter+Ant+Jenkins实现接口自动化测试持续集成
本文介绍了如何使用Ant生成JMeter接口测试报告,并集成到Jenkins中实现自动化测试。内容涵盖Ant与JMeter环境配置、build.xml文件设置、测试执行及报告生成,同时包括Jenkins插件安装、项目配置和钉钉消息通知的集成,帮助实现持续测试与结果可视化。
462 0
|
2月前
|
前端开发 Java jenkins
Jmeter压力测试工具全面教程和使用技巧。
JMeter是一个能够模拟高并发请求以检查应用程序各方面性能的工具,包括但不限于前端页面、后端服务及数据库系统。熟练使用JMeter不仅能够帮助发现性能瓶颈,还能在软件开发早期就预测系统在面对真实用户压力时的表现,确保软件质量和用户体验。在上述介绍的基础上,建议读者结合官方文档和社区最佳实践,持续深入学习和应用。
496 10
|
2月前
|
监控 Java 数据挖掘
利用Jmeter工具进行HTTP接口的性能测试操作
基础上述步骤反复迭代调整直至满足预期目标达成满意水平结束本轮压力评估周期进入常态监控阶段持续关注系统运转状态及时发现处理新出现问题保障服务稳定高效运作
290 0
|
4月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
747 23
|
6月前
|
数据可视化 测试技术 API
JMeter、Apipost 与 Postman 的 API 测试对比:为什么 APIPost 是更聪明的选择
API测试如同筹备一场晚宴,选对工具至关重要。JMeter功能强大但上手难,适合专业用户;Postman简单易用,但在复杂场景和团队协作中表现有限;而Apipost则是一款智能高效的“厨房神器”。它性能测试轻松、结果清晰、学习门槛低,并且能一键集成CI/CD流程。对于追求效率与便捷的团队而言,Apipost无疑是更优选择,让API测试如同五星大厨烹饪般丝滑流畅。
|
12月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【10月更文挑战第1天】Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
392 3
|
测试技术 数据库 UED
Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
【9月更文挑战第9天】在数字化时代,确保软件系统在高并发场景下的稳定性至关重要。Python 为此提供了丰富的性能测试工具,如 JMeter 和 Locust。JMeter 可模拟复杂请求场景,而 Locust 则能更灵活地模拟真实用户行为。结合两者优势,可全面评估系统性能并优化瓶颈。例如,在电商网站促销期间,通过 JMeter 模拟大量登录请求并用 Locust 模拟用户浏览和购物行为,可有效识别并解决性能问题,从而提升系统稳定性和用户体验。这种组合为性能测试开辟了新道路,助力应对复杂挑战。
342 2
|
9月前
|
缓存 网络协议
Jmeter如何对UDP协议进行测试?
`jmeter-plugins`是JMeter的插件管理器,用于管理和组织所有插件。访问[官网](https://jmeter-plugins.org/install/Install/)下载并放置于`lib/ext`目录下,重启JMeter后可在“选项”中看到插件管理器。
229 1
Jmeter如何对UDP协议进行测试?
|
11月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
424 3
|
11月前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
280 1