首页 > 其他分享 >使用 JMeter 进行压力测试

使用 JMeter 进行压力测试

时间:2024-12-10 09:46:19浏览次数:7  
标签:jmeter -- 添加 线程 测试 压力 JMeter

一.前言#

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

二.关于JMeter#

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

官网:http://jmeter.apache.org/download_jmeter.cgi

这里我选用了 4.0 版本的二进制包:http://mirror.bit.edu.cn/apache//jmeter/binaries/apache-jmeter-4.0.zip

更多内容介绍 https://baike.baidu.com/item/Jmeter/3104456

三.准备工作#

因为JMeter是使用JAVA写的,所以使用JMeter之前,先安装JAVA环境,本文就不讲不如安装JAVA环境了。.

JAVA环境变量配置:https://jingyan.baidu.com/article/fd8044fa2c22f15031137a2a.html

解压下载的二进制包,进入bin目录,使用jmeter.bat启动程序。

启动之后会有两个窗口,一个cmd窗口,一个JMeter的 GUI。前面不要忽略CMD窗口的提示信息:

JMeter:

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批处理文件的环境变量:HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"

更改语言为中文#

官方默认为我们提供了简体中文。通过 【Options】->【Choose Language】变更为简体中文

四.创建测试#

1.创建线程组#

在“测试计划”上右键 【添加】-->【Threads(Users)】-->【线程组】。

设置线程数和循环次数。我这里设置线程数为500,循环一次。

2.配置元件#

在我们刚刚创建的线程组上右键 【添加】-->【配置元件】-->【HTTP请求默认值】。

配置我们需要进行测试的程序协议、地址和端口

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

3.构造HTTP请求#

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

4.添加HTTP请求头#

在我们刚刚创建的线程组上右键 【添加】-->【配置元件】-->【HTTP信息头管理器】。

因为我要传输的数据为json,所以设置一个 Content-Type:application/json

5.添加断言#

在我们刚刚创建的线程组上右键 【添加】-->【断言】-->【响应断言】。

根据响应的数据来判断请求是否正常。我在这里只判断的响应代码是否为200。还可以配置错误信息

6.添加察看结果树#

在我们刚刚创建的线程组上右键 【添加】-->【监听器】-->【察看结果树】。

直接添加,然后点击运行按钮就可以看到结果了。

7.添加Summary Report#

在我们刚刚创建的线程组上右键 【添加】-->【监听器】-->【Summary Report】。

直接添加,然后点击运行按钮就可以看到结果了。

为了不引起不必要的争论,隐藏了TPS。此数据不具备任何价值,仅仅为文章演示。

8.测试计划创建完成#

记得点保存。

五.执行测试计划#

前面我们说过,执行测试计划不能用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报告如下:

六.写在最后#

线程数量和循环次数将会影响最终的测试报告,请大家多多测试。

作者:晓晨Master(李志强)

标签:jmeter,--,添加,线程,测试,压力,JMeter
From: https://www.cnblogs.com/lhxsoft/p/18596625

相关文章

  • 【安全就业】2024年网络安全技术技能人才职业能力图谱+开发与测试
    开发与测试能力,是指在网络安全工作中需要使用的编程开发与应用测试的基本能力,除了使用各种主流开发语言的通用开发能力,还包括安全开发能力、安全测试能力、安全产品设计能力、系统安全能力、以及AI辅助开发与测试能力等6大14小类56项具体能力。一、通用开发能力通用开发能力,主......
  • 【测试平台开发】Vue组件化使用学习教程
    一、理解Vue组件Vue组件是Vue.js框架中的一个核心概念,它允许你将UI拆分成可复用的部分,每个部分都包含自己的模板、逻辑和样式。通过组件化开发,你可以提高代码的可维护性和可复用性。二、创建Vue教程组件1、项目初始化:确保你已经使用VueCLI创建了一个Vue项目。2、创建组件:在......
  • T03_DDR4信号完整性测试解決方案
    DDR4信号测试分类DDR4信号测试主要分为以下几种情况:1.以手机为代表的多阶表贴内存颗粒,由于主芯片与内存颗粒几乎是挨着摆放,信号不是通孔,没有测试点,要测试必须使用interposer;2.以电视为代表的单面表贴颗粒,这种有条件也可以上interposer,没条件就直接刮开过孔、刮开走线......
  • 渗透测试人员的 Nmap:漏洞扫描零基础入门教程,网络安全看这一篇就够了!
    此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用......
  • 用HubSpot免费托管,轻松建站无压力
    在数字化的时代,网站托管如同企业互联网战略中的一艘稳健航船,引领我们在信息的海洋中破浪前行。它不仅关乎企业网站能否在互联网的广阔天地间站稳脚跟,更直接牵动着客户的体验、品牌的塑造乃至业务的拓展。而HubSpot,不仅凭借其卓越的软件产品和服务赢得了各大企业的信赖与赞誉,......
  • Playwright的端到端测试(End-to-End Testing,简称 E2E 测试)是什么意思?
    Playwright的端到端测试(End-to-EndTesting,简称E2E测试)是一种软件测试方法,旨在模拟真实用户在应用程序中的交互行为,从头到尾验证整个应用的工作流程。这种测试确保了应用的所有组件(前端、后端、数据库等)协同工作,并且用户体验符合预期。端到端测试的特点全面覆盖:端到端测......
  • Linux 查看计算机各个硬件的性能: sysbench (多线程性能测试工具)
    安装Ubuntu/Debian:sudoapt-getupdatesudoapt-getinstallsysbenchCentOS/RHEL:sudoyuminstallepel-releasesudoyuminstallsysbench使用运行CPU压力测试:sysbenchcpu--threads=4run运行内存压力测试:sysbenchmemory--threads=4run运行文件IO压力......
  • 软件测试报告怎么写?
    前言软件测试报告是软件测试工作的重要成果之一,它对软件质量的评估和改进提供了重要依据。因此,如何撰写一份完整、准确、清晰的软件测试报告是每个测试人员都需要掌握的基本技能。下文将从软件测试报告的结构、内容和撰写要点等方面进行详细介绍。首先,软件测试报告的结构通......
  • 软件测试|电商类项目业务测试点汇总
    前言在数字化浪潮的推动下,电商项目已成为商业领域的重要支柱。从用户下单、支付到物流配送,每一个环节都关乎着用户的满意度和企业的生死存亡。在这样的背景下,电商项目的业务测试显得尤为重要。下面给大家介绍一下电商项目业务相关的测试点。01登陆功能测试功能测试:①输入......
  • 视频流媒体播放器EasyPlayer.js无插件H5播放器,如何测试demo视频?
    EasyPlayer.js播放器作为一款功能全面的H5流媒体播放器,凭借其多种协议支持、多种解码方式、丰富的渲染元素和强大的应用功能,以及出色的跨平台兼容性,为用户提供了高度定制化的选项和优化的播放体验。无论是视频直播还是点播,EasyPlayer.js视频流媒体播放器都能满足各种复杂场景下的......