JMeter 使用(实现压测请求以及生成图文报告)

本文详细介绍了如何使用Apache JMeter进行压力测试,包括添加线程组、配置HTTP请求、设置参数如Ramp-Up Period和Scheduler,以及添加结果树视图、HTTP请求头和Summary Report。通过CMD运行JMeter并生成测试报告,帮助评估和优化Web应用程序的性能。

一.前言

压力测试是每一个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

三、开始第一个测试

将下载好的文件解压,在bin目录下点jmeter.bat启动

程序会先弹出个CMD命令窗口,不要着急,等一会儿 就会弹出应用窗口 

添加线程组

在“测试计划”上右键 add【添加】-->【Threads(Users)】-->Thread Group【线程组】。(如何不习惯英文的,可以找中文版的)

 

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

这里简单介绍下

Ramp-Up Period(in second)

【1】决定多长时间启动所有线程。如果使用10个线程,ramp-up period是100秒,那么JMeter用100秒使所有10个线程启动并运行。每个线程会在上一个线程启动后10秒(100/10)启动。Ramp-up需要要充足长以避免在启动测试时有一个太大的工作负载,并且要充足小以至于最后一个线程在第一个完成前启动。  一般设置ramp-up=线程数启动,并上下调整到所需的。

【2】用于告知JMeter 要在多长时间内建立全部的线程。默认值是0。如果未指定ramp-up period ,也就是说ramp-up period 为零, JMeter 将立即建立所有线程。假设ramp-up period 设置成T 秒, 全部线程数设置成N个, JMeter 将每隔T/N秒建立一个线程。

【3】Ramp-Up Period(in-seconds)代表隔多长时间执行,0代表同时并发

Delay Thread creation until needed         

延迟创建线程,直到该线程开始采样,即之后的任何线程组延迟和加速时间为线程本身。这样可以支持更多的线程,但不会有太多是同时处于活动状态。

Scheduler

Duration(seconds):决定了本次压测的持续时间是多长,也就是说,jmeter通过这个填入框的值,计算出来压测的结束时间

Startup delay(seconds): 决定了本次压测延迟多长时间开始,也就是说,jmeter通过这个填入框的值,计算出来压测的开始时间;这个设置,多数情况是在一个test plan下,有多个thread group的时候,分时间间隔来执行,这样可以更好的观察,到底是哪个接口/哪些接口导致系统出现不稳定/持续报错/OOM等问题

容易犯错的地方:在使用scheduler的时候,记得选中Forever

配置Http请求

填入响应的接口信息 

到这里其实已经可以保存并运行了,但是我们有时候也需要看返回的结果信息,那么需要添加一个监听器

添加结果树视图


 

添加HTTP请求头

添加结果返回

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

添加Summary Report

会显示各种信息 

 

保存

完成后,就可以点击运行,运行前,需要保存 

 当然你可以直接使用界面运行,一般来说是没用问题的,但是注意,既然是应用另外附带了一些可视化以及周期信息显示,那么必然消耗性能,所以需要你自己把握。下面再介绍如何使用CMD运行

 使用CMD运行并生成报告

命令

jmeter -n -t example\First.jmx -l result\result.txt -e -o result\webreport

这里将命令简写了,个人使用的时候喜欢用绝对路劲。

  • example\First.jmx    为测试计划文件路径
  • result\result.txt    为测试结果文件路径
  • result\webreport        为web报告保存路径 

web报告如下:

txt文件信息:

 

### 使用 JMeter 对域名进行使用 JMeter 对域名进行试需要完成以下几个方面的配置和操作,以下是详细说明: #### 1. 安装与环境配置 确保 JMeter 已正确安装并配置环境变量。如果尚未安装,可以参考以下步骤: - 下载 JMeter 缩包[^2]。 - 解后设置 `JMETER_HOME` 环境变量,并将 `%JMETER_HOME%\bin` 添加到系统的 `PATH` 中。 - 配置中文显示(如果需要):修改 `jmeter.properties` 文件中的编码设置为 `UTF-8`。 启动 JMeter 后,可以通过 GUI 界面进行后续配置。 #### 2. 创建试计划 在 JMeter 的 GUI 界面中,右键单击“试计划”,选择 **添加 > 线程(用户) > 线程组**,以创建线程组。在此线程组中,可以定义以下参数: - **线程数**:模拟的并发用户数量。 - **Ramp-Up 时间**:所有线程启动所需的时间(单位为秒)。 - **循环次数**:每个线程执行试的次数。 #### 3. 配置 HTTP 请求 右键单击线程组,选择 **添加 > 取样器 > HTTP 请求**。在弹出的窗口中,填写以下信息: - **Server Name or IP**:目标域名或 IP 地址。 - **Port Number**:目标服务器的端口号(如果未指定,默认为 80 或 443)。 - **Path**:请求的 URL 路径。 - **Method**:HTTP 方法(如 GET、POST 等)。 - **Parameters**:如果需要发送额外的参数,可以在下方表格中添加。 #### 4. 添加监听器 为了查看试结果,需要添加监听器。右键单击线程组,选择 **添加 > 监听器**,可以选择以下几种常用的监听器: - **查看结果树**:用于查看每次请求的详细响应。 - **汇总报告**:提供统计摘要,包括平均响应时间、吞吐量等。 - **聚合报告**:类似于汇总报告,但更简洁。 #### 5. 执行试 配置完成后,点击工具栏上的绿色三角形按钮开始执行试。试过程中,可以通过监听器实时查看性能数据。 #### 6. 分析与优化 根据试结果,分析系统瓶颈并进行优化。例如,可以通过调整线程数、Ramp-Up 时间等参数来模拟不同的负载场景[^3]。 --- ```python # 示例代码:生成简单的 HTTP 请求脚本 from jmeter_api.basics.thread_group import ThreadGroup from jmeter_api.basics.http_request import HttpRequest # 创建线程组 thread_group = ThreadGroup( num_threads=100, rampup_period=10, loops=1 ) # 创建 HTTP 请求 http_request = HttpRequest( server_name="example.com", port_number=80, path="/api/test", method="GET" ) ``` --- ### 注意事项 - 如果目标域名使用 HTTPS 协议,可能需要导入相关证书以避免 SSL 握手失败[^2]。 - 在高负载场景下,建议使用非 GUI 模式运行 JMeter,以减少资源消耗[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值