微网站栏目,专业信息门户网站建设,宁夏电力建设工程公司外部网站,甘肃网站备案概 述
Apache JMeter 是 Apache组织开发的基于 Java的压力测试工具。用于对软件做压力测试#xff0c;它最初被设计用于 Web应用测试但后来扩展到其他测试领域。它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库#xff0c; FTP 服…
概 述
Apache JMeter 是 Apache组织开发的基于 Java的压力测试工具。用于对软件做压力测试它最初被设计用于 Web应用测试但后来扩展到其他测试领域。它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库 FTP 服务器 等等。
JMeter 可以用于对服务器、网络或对象模拟巨大的负载来在不同压力类别下测试它们的强度和分析整体性能。 通过官网 http://jmeter.apache.org/即可方便地下载使用 JMeter不过注意需要预先准备好 Java环境。 JMeter基本概念
在介绍如何使用Jmeter之前先介绍下Jmeter里的一些基本概念
1测试计划 是使用 JMeter 进行测试的起点它是其它 JMeter 测试元件的容器。
2线程组 代表一定数量的并发用户它可以用来模拟并发用户发送请求。实际的请求内容在Sampler中定义它被线程组包含。可以在“测试计划-添加-线程组”来建立它然后在线程组面板里有几个输入栏线程数、Ramp-Up Period(in seconds)、循环次数其中Ramp-Up Period(in seconds)表示在这时间内创建完所有的线程。如有8个线程Ramp-Up 200秒那么线程的启动时间间隔为200/825秒这样的好处是一开始不会对服务器有太大的负载。线程组是为模拟并发负载而设计。
3取样器Sampler 模拟各种请求。所有实际的测试任务都由取样器承担存在很多种请求。如HTTP 、ftp请求等等。
4监听器 负责收集测试结果同时也被告知了结果显示的方式。功能是对取样器的请求结果显示、统计一些数据吞吐量、KB/S……等。
5逻辑控制器 允许自定义JMeter发送请求的行为逻辑它与Sampler结合使用可以模拟复杂的请求序列。
6断言 用于来判断请求响应的结果是否如用户所期望是否正确。它可以用来隔离问题域即在确保功能正确的前提下执行压力测试。这个限制对于有效的测试是非常有用的。
7定时器 负责定义请求线程之间的延迟间隔模拟对服务器的连续请求。
8配置元件 维护Sampler需要的配置信息并根据实际的需要会修改请求的内容。
9前置处理器和后置处理器负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置后置处理器则常常用来处理响应的数据。
接下来模拟高并发进行压力测试 建立线程组
要想模拟高并发线程组是必不可少的所以首先我们建立一个线程组 配置线程组 这里是建立了300个线程 Ramp-UpPeriod参数是为了防止一下子创建300个线程导致程序假死而设计的意思是在多少秒之内建立起所有的线程。
现在我也找了很多测试的朋友做了一个分享技术的交流群共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源没人解答问题坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化性能安全测试开发等等方面有一定建树的技术大牛
分享他们的经验还会分享很多直播讲座和技术沙龙
可以免费学习划重点开源的
qq群号110685036【暗号csdn999】 建立一个循环控制器
进行压力测试不可能只是让每一个线程进行一次操作。肯定是让每一个线程一直循环的往下跑。这里就设置为永远了手动进行停止才生效 循环控制器配置 设置http信息头管理器
因为测试的网站做了访问限制只有浏览器才能进行访问所以必须指定 User-Agent去模拟浏览器进行请求。
新建http信息头管理器 http信息头管理器配置 设置一个固定定时器
这一步的作用是让线程每过多少毫秒进行下一次操作我这里设置500毫秒也就是每一个线程1秒进行2次操作
新建固定定时器 固定定时器配置 设置一个http请求
这里的参数都很好理解需要注意的是 服务器名称或ip这里我们也可以填写域名还有路径这里不需要加域名或者服务器ip
添加HTTP请求 HTTP请求配置 图形结果
图形结果监视器 图形结果 聚合报告 查看结果树 测试计划的排列顺序 这里的顺序是有讲究的从结构上可以看出也可以这么类比
创建了一个线程组 for循环多少次{ 设置请求头 设置sleep时间 进行http请求 } 结果的分析
聚合报告
查看聚合报告如下 Samples 本次场景中一共完成了多少个Transaction
Average 平均响应时间 (ms) Median 统计意义上面的响应时间的中值 (ms) 90%Line 所有transaction中90%的transaction的响应时间都小于xx
Min 最小响应时间 (ms)
Max 最大响应时间 (ms)Error 出错率Troughput 吞吐量单位transaction/sec
KB/sec 以流量做衡量的吞吐量
以树状列表查看结果 我们可以看到很详细的每个 transaction它所返回的结果其中红色是指出错的transaction绿色则为通过的。如果你测试的场景会有很多的transaction完成建议在这个Listener中仅记录出错的transaction就可以了。要做到这样你只需要将Log/Display:中的Errors勾中就可以了。
若有错误或者不当之处可在评论区反馈一起学习交流
END今天的分享就到此结束了点赞关注不迷路