一文2000字从0到1使用压测神器JMeter进行压力测试!

概 述

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/8=25秒,这样的好处是:一开始不会对服务器有太大的负载。线程组是为模拟并发负载而设计。

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今天的分享就到此结束了,点赞关注不迷路!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值