手把手教你 - JMeter压力测试

前言

压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率;预估系统的承载能力,使我们能根据其做出一些应对措施。所以压力测试是一个非常重要的步骤,下面我带大家来使用一款压力测试工具JMeter。

关于JMeter

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器等…

JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

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

前置工作

官网:Apache JMeter - Download Apache JMeter 链接地址摆好了, 大家点击进去官网下载。

当然, 如果你不想去官网下载, 我在下面也准备了一份安装包供你下载安装使用。基于版本 - JMeter5.6.3

官网下载界面:
在这里插入图片描述
我在这里准备了一份安装包, 他是 .tgz 格式的; 需要自行解压缩, 你可选择7-zip 或 WinRAR 等第三方软件进行解压缩; 这里我使用 Windows 命令行方式解压缩。

安装包下载链接(百度云盘): apache-jmeter-5.6.3.tgz
链接: https://pan.baidu.com/s/1lxhnBbaKHJmRggTjWPjb5Q?pwd=xy74 提取码: xy74

用Windows命令行解压缩即可。操作步骤如下:

  • (1)进入存放压缩包文件夹,搜索栏输入cmd 打开命令行(回车)
  • (2)然后录入tar -xvzf + 需要解压的文件所在的路径(回车)
  • (3)解压完成后在系统用户目录下可以找到解压的文件

在这里插入图片描述
在这里插入图片描述
进入bin目录,使用jmeter.bat启动程序。
在这里插入图片描述
注: jmeter需要jdk环境。对应的jdk版本不可太低,一般jmeter3.0的对应jdk1.7,jmeter4.0对应jdk1.8以上;环境变量相关配置此处不赘述了。

启动之后会有两个窗口,一个cmd窗口,一个JMeter的 GUI。

cmd窗口(没有安装java环境)
在这里插入图片描述

cmd窗口(已正确安装并配置Java环境)
在这里插入图片描述
JMeter的 GUI 窗口(注意看CMD窗口的提示信息)

================================================================================
Don't use GUI mode for load testing !, only for Test creation and Test debugging.
For load testing, use NON GUI Mode:
   jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
& increase Java Heap to meet your test requirements:
   Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch file
Check : https://jmeter.apache.org/usermanual/best-practices.html
================================================================================

翻译:不要使用GUI运行压力测试,GUI仅用于压力测试的创建和调试;执行压力测试请不要使用GUI。

使用如下命令执行测试(这里你可暂且跳过, 下面会讲到具体使用):

 jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]

启动后会看到JMeter界面
在这里插入图片描述
更改语言为中文: 官方为我们提供了简体中文。通过 【Options】->【Choose Language】变更为简体中文
在这里插入图片描述
当然, 如果你想在压测完成之后执行测试计划, 那么你还需要为JMeter配置环境变量; 这里我就不再阐述了, 同学们自己摸索配置哈! 其实不配置是不影响你使用Jmeter压测的。

创建测试

创建线程组

“测试计划”上右键 【添加】–>【Threads(Users)】–>【线程组】
在这里插入图片描述
设置线程数和循环次数。我这里设置线程数为500,循环一次。

重要的事情说三遍:
结合实际进行设定, 阶梯式压测, 一次压太多怕你机器冒烟
结合实际进行设定, 阶梯式压测, 一次压太多怕你机器冒烟
结合实际进行设定, 阶梯式压测, 一次压太多怕你机器冒烟

在这里插入图片描述

配置元件

在这里插入图片描述
配置需要进行测试的程序协议、地址和端口
在这里插入图片描述

注意:
当所有的接口测试的访问域名和端口都一样时,可以使用该元件,一旦服务器地址变更,只需要修改请求默认值即可

构造HTTP请求

“线程组”右键 【添加-】->【samlper】–>【HTTP 请求】设置我们需要测试的API的请求路径和数据。我这里是用的json
在这里插入图片描述

添加HTTP请求头

  • 线程组上右键 【添加】–>【配置元件】–>【HTTP信息头管理器】

  • 因为我要传输的数据为json,所以设置一个 Content-Type:application/json, 你可根据实际设置
    在这里插入图片描述

添加断言

  • 线程组上右键 【添加】–>【断言】–>【响应断言】

  • 根据响应的数据来判断请求是否正常。我在这里只判断的响应代码是否为200。当然你还可以配置错误信息
    在这里插入图片描述

添加察看结果树

  • 创建的线程组上右键 【添加】–>【监听器】–>【察看结果树】

  • 直接添加,然后点击运行按钮就可以看到结果了
    在这里插入图片描述

添加Summary Report

  • 线程组上右键 【添加】–>【监听器】–>【Summary Report】

  • 直接添加,然后点击运行按钮就可以看到结果了
    在这里插入图片描述
    为了不引起不必要的争论,隐藏了TPS。此数据不具备任何价值,仅仅为文章演示。

记得点保存,这时候会生成一个pem的文件

执行测试计划

前面我们说过,执行测试计划不能用GUI,需要用命令行来执行

在这里插入图片描述

我这里执行的命令:

jmeter -n -t testplan/RedisLock.jmx -l testplan/result/result.txt -e -o testplan/webreport
  • testplan/RedisLock.jmx 为测试计划文件路径

  • testplan/result/result.txt 为测试结果文件路径

  • testplan/webreport 为web报告保存路径。

Web报告如下:
在这里插入图片描述
线程数量和循环次数将会影响最终的测试报告, 如果服务器资源有限,注意采用阶梯测试。我下载的5.6.3版本的jemeter没有阶梯测试的插件,选择5.4.1的有,这里需要注意一下。

总结

对于压测,需要采取的策略是阶梯压测,然后让他持续一段时间,看看所测试的服务是否平滑且正常运行。

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JMeter是一款免费的开源软件,用于进行压力测试、负载测试和功能测试。下面是一个简单的JMeter压力测试程,帮助你了解如何使用JMeter进行压力测试。 1. 下载和安装JMeter 首先,你需要从JMeter官方网站(https://jmeter.apache.org/)下载并安装JMeter软件。 2. 创建测试计划 打开JMeter软件,点击“File” -> “New”,创建一个新的测试计划。在左侧的树形结构中,你可以看到测试计划中的各个元素,如线程组、HTTP请求、断言等。 3. 添加线程组 线程组是JMeter中最基本的元素,用于模拟并发用户。在测试计划中,右键点击“Test Plan”,选择“Add” -> “Threads(Users)” -> “Thread Group”。 在线程组属性中,你可以设置用户数量、循环次数、启动延迟等参数。 4. 添加HTTP请求 在线程组下面添加HTTP请求,用于模拟用户的请求。右键点击线程组,选择“Add” -> “Sampler” -> “HTTP Request”。 在HTTP请求属性中,你可以设置请求的URL、请求方法、请求头、请求参数等。 5. 添加断言 断言用于验证服务器的响应是否符合预期。右键点击HTTP请求,选择“Add” -> “Assertions” -> “Response Assertion”。 在断言属性中,你可以设置验证响应的方式、验证规则等。 6. 运行测试计划 在测试计划中,点击“Run”按钮,JMeter将开始模拟并发用户的请求,并记录服务器的响应时间、吞吐量、错误率等数据。 7. 分析测试结果 JMeter提供了多种报告和图表,帮助你分析测试结果。在测试计划中,右键点击“Summary Report”,选择“Add” -> “Listener” -> “Aggregate Report”。 在报告属性中,你可以选择显示的字段、排序方式等。 以上就是JMeter压力测试的基本流程,希望能帮助你进行有效的性能测试。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值