使用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天前
|
测试技术 数据库 UED
Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
【9月更文挑战第9天】在数字化时代,确保软件系统在高并发场景下的稳定性至关重要。Python 为此提供了丰富的性能测试工具,如 JMeter 和 Locust。JMeter 可模拟复杂请求场景,而 Locust 则能更灵活地模拟真实用户行为。结合两者优势,可全面评估系统性能并优化瓶颈。例如,在电商网站促销期间,通过 JMeter 模拟大量登录请求并用 Locust 模拟用户浏览和购物行为,可有效识别并解决性能问题,从而提升系统稳定性和用户体验。这种组合为性能测试开辟了新道路,助力应对复杂挑战。
14 2
|
1月前
|
测试技术 持续交付 Apache
深度挖掘:Python性能测试中JMeter与Locust的隐藏技能🔍
【8月更文挑战第5天】随着软件规模扩大,性能测试对系统稳定性至关重要。Apache JMeter和Locust是两大主流工具,各有千秋。本文探索它们在Python环境下的进阶用法,挖掘更多性能测试潜力。JMeter功能强大,支持多种协议,可通过命令行模式执行复杂测试计划,并与Python集成实现动态测试数据生成。Locust基于Python,通过编写简洁脚本模拟HTTP请求,支持自定义请求及与Python库深度集成。掌握这些技巧可实现高度定制化测试场景,有效识别性能瓶颈,提升应用稳定性。
102 1
|
1月前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【8月更文挑战第5天】性能测试确保应用高负载下稳定运行。Apache JMeter与Locust是两大利器,助力识别解决性能瓶颈。本文介绍这两款工具的应用与优化技巧,并通过实战示例展示性能测试流程。首先,通过JMeter测试静态与动态资源;接着,利用Locust的Python脚本模拟HTTP请求。文中提供安装指南、命令行运行示例与性能优化建议,帮助读者掌握性能测试核心技能。
64 0
|
1月前
|
消息中间件 Java 测试技术
Python性能测试全攻略:JMeter与Locust,双剑合璧斩断性能瓶颈🗡️
【8月更文挑战第4天】在软件开发中,性能至关重要。对Python开发者来说,掌握高效性能测试方法尤为关键。本文将带您探索性能测试工具JMeter与Locust的强大功能。JMeter作为Java世界的巨擘,以其强大功能和灵活性在性能测试领域占有一席之地,不仅适用于Java应用,也能测试Python Web服务。
64 0
|
2天前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【9月更文挑战第10天】随着软件应用的不断扩展,性能测试成为确保系统稳定运行的关键环节。本文通过对比Apache JMeter和Locust,探讨了如何在Python环境中利用这两款工具挖掘更多性能测试潜力。JMeter是一款成熟且功能强大的开源工具,支持多种协议,适用于各种应用的测试;而Locust则基于Python,通过简单脚本模拟HTTP请求,更适合Web应用测试。
8 2
|
7天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【9月更文挑战第5天】性能测试是确保应用在高负载下稳定运行的关键。本文介绍Apache JMeter和Locust两款常用性能测试工具,帮助识别并解决性能瓶颈。JMeter适用于测试静态和动态资源,而Locust则通过Python脚本模拟HTTP请求。文章详细讲解了安装、配置及使用方法,并提供了实战案例,帮助你掌握性能测试技巧,提升应用性能。通过分析测试结果、模拟并发、检查资源使用情况及代码优化,确保应用在高并发环境下表现优异。
28 5
|
4天前
|
消息中间件 监控 测试技术
惊呆了!Python性能测试高手都用这些神器:JMeter+Locust,效率翻倍📈
【9月更文挑战第8天】在软件开发中,性能测试对确保应用稳定性和高效运行至关重要。对于Python开发者而言,选择合适的性能测试工具能显著提升测试效率并精准定位性能瓶颈。本文深入探讨了JMeter和Locust这两款工具的独特优势。JMeter作为跨平台的性能测试工具,支持多种协议,具备高度可定制性和扩展性;而Locust则专为Python应用设计,利用协程实现高并发,提供实时监控和分布式测试功能。两者结合使用,可在实际项目中实现1+1>2的效果,帮助开发者构建全面高效的测试方案,保障应用稳定运行。
25 1
|
6天前
|
测试技术 Apache 数据库
从慢如蜗牛到飞一般的感觉!Python性能测试实战,JMeter&Locust助你加速🏃‍♂️
【9月更文挑战第6天】你的Python应用是否曾因响应缓慢而让用户望而却步?借助JMeter与Locust,这一切将迎刃而解。JMeter作为Apache基金会的明星项目,以其强大的跨平台和多协议支持能力,成为性能测试领域的魔法师;而Locust则以Python的简洁与高效,让性能测试更加灵活。通过实战演练,你可以利用这两款工具轻松识别并解决性能瓶颈,优化数据库查询、网络配置等,最终使应用变得敏捷高效,轻松应对高并发挑战。
9 1
|
8天前
|
测试技术 持续交付 Apache
性能测试不再愁!Python+JMeter+Locust,三步打造高性能应用
【9月更文挑战第4天】随着互联网的发展,软件性能成为衡量应用成功的关键。性能测试确保应用稳定高效运行,但复杂环境和多样需求带来了挑战。Python、JMeter和Locust三款工具可构建高效全面的性能测试方案。Python语法简洁,库丰富;JMeter提供图形界面,支持多种协议;Locust基于Python,简单易用且高度可扩展。结合三者,能满足复杂需求,保证灵活性与高效性。无论初学者还是资深工程师,都能确保应用高性能运行。
16 1
|
1月前
|
监控 Java 测试技术
实战派必看!Python性能测试中,JMeter与Locust如何助力性能调优
【8月更文挑战第6天】性能优化是软件开发的关键。本文介绍JMeter与Locust两款流行性能测试工具,演示如何用于Python应用的性能调优。JMeter可模拟大量用户并发访问,支持多种协议;Locust用Python编写,易于定制用户行为并模拟高并发。根据场景选择合适工具,确保应用在高负载下的稳定运行。
77 4