首页 > 其他分享 >如何使用 JMeter 进行性能和负载测试?

如何使用 JMeter 进行性能和负载测试?

时间:2024-01-23 23:09:21浏览次数:25  
标签:负载 性能 线程 测试 服务器 JMeter

五星上将麦克阿瑟曾经说过“在性能测试面前,真是麻雀啄了牛屁股——雀食牛逼“


让我们来讲一个故事


今天和女朋友吵架了,(假设你有女朋友)。

今晚又是一个人睡沙发,这天晚上,你躺在沙发上,夜不能寐


决定学习一下这个事情——如何使用JMeter进行性能和负载测试


前言

JMeter 负载测试与性能测试

JMeter负载测试是使用名为Apache JMeter的负载测试工具完成的测试过程,Apache JMeter是基于Java的开源桌面应用程序。用于负载测试的 JMeter 是决定被测 Web 应用程序是否能够满足高负载要求的重要工具。它还有助于分析重负载下的整体服务器。


JMeter 性能测试是使用 Apache JMeter 执行的测试方法,用于测试 Web 应用程序的性能。用于性能测试的JMeter有助于测试静态和动态资源,有助于发现网站上的并发用户,并为性能测试提供各种图形分析。JMeter性能测试包括Web应用程序的负载测试和压力测试。

如何使用 JMeter 进行性能和负载测试?_服务器

  • Apache JMeter 测试工具在性能测试中提供以下优势
  • JMeter 既可用于测试静态资源(如JavaScript和 HTML)的性能,也可用于测试动态资源(如 JSP、Servlet 和 AJAX)的性能。
  • JMeter 可以发现您的网站可以处理的最大并发用户数
  • JMeter 提供各种性能报告的图形分析。

JMeter 性能测试包括哪些?

那么,性能测试包括什么呢?

如何使用 JMeter 进行性能和负载测试?_性能测试_02

  • 负载测试:通过模拟多个用户同时访问Web 服务来对预期使用情况进行建模。
  • 压力测试:每个网络服务器都有最大负载能力。当负载超出限制时,Web 服务器开始响应缓慢并产生错误。压力测试的目的是找出Web服务器可以处理的最大负载。

下图展示了JMeter loadTesting如何模拟重负载

如何使用 JMeter 进行性能和负载测试?_性能测试_03


如何使用Jmeter进性能测试?

在测试目标 Web 应用程序的性能之前,我们应该确定 -

  • 正常负载:访问您网站的平均用户数
  • 重载:访问您网站的最大用户数
  • 你在这次测试中的目标是什么?

这是这个实际例子的路线图

如何使用 JMeter 进行性能和负载测试?_服务器_04


以谷歌为例子。进行一次简单的压测

步骤1)添加线程组

  1. 启动JMeter
  2. 在树上选择测试计划
  3. 添加线程组

右键单击“测试计划”并添加新的线程组:添加->线程(用户) ->线程组

如何使用 JMeter 进行性能和负载测试?_性能测试_05

在“线程组”控制面板中,输入“线程属性”,如下所示:


如何使用 JMeter 进行性能和负载测试?_服务器_06

  • 线程数:100(连接到目标网站的用户数:100)
  • 循环计数:10(执行测试的时间数)
  • 加速期:100

线程计数和循环计数不同。

如何使用 JMeter 进行性能和负载测试?_服务器_07

Ramp-Up period 告诉 JMeter在启动下一个用户之前延迟多长时间。例如,如果我们有 100 个用户和 100 秒的 Ramp-Up 周期,则启动用户之间的延迟将为 1 秒(100 秒/100 个用户)

如何使用 JMeter 进行性能和负载测试?_服务器_08

步骤 2) 添加 JMeter 元素

现在我们确定本次测试中有哪些 JMeter 元素。这些元素是

HTTP 请求默认

可以通过右键单击线程组并选择:添加->配置元素-> HTTP 请求默认值来添加此元素。

如何使用 JMeter 进行性能和负载测试?_服务器_09

在 HTTP 请求默认值控制面板中,输入要测试的网站名称 ( http://www.google.com )

如何使用 JMeter 进行性能和负载测试?_服务器_10

HTTP请求

右键单击线程组并选择:添加->采样器-> HTTP 请求。

如何使用 JMeter 进行性能和负载测试?_性能测试_11

在 HTTP 请求控制面板中,路径字段指示您要向 Google 服务器发送哪个URL 请求。

如何使用 JMeter 进行性能和负载测试?_服务器_12

例如,如果您在路径字段中输入“calendar”。 JMeter 将向Google 服务器创建 URL 请求http://www.google.com/calendar

如何使用 JMeter 进行性能和负载测试?_服务器_13

如果将 Path 字段保留为空, JMeter 将向Google 服务器创建 URL 请求http://www.google.com 。

在此测试中,您将 Path 字段保留为空,以使 JMeter 创建到 Google 服务器的 URL 请求http://www.google.com 。

步骤3)添加图形结果

JMeter可以以Graph的形式显示测试结果。

右键单击测试计划,添加->侦听器->图形结果

如何使用 JMeter 进行性能和负载测试?_服务器_14

步骤4)运行测试并获取测试结果

按工具栏上的运行按钮 (Ctrl + R) 开始软件测试过程。您将看到测试结果实时显示在图表上。

下图展示了一个测试计划的图表,其中我们模拟了访问网站www.google.com 的100 个用户。

如何使用 JMeter 进行性能和负载测试?_性能测试_15

图片底部有以下统计数据,用颜色表示:

  • 黑色:当前发送的样本总数。
  • 蓝色:当前发送的所有样本的平均值。
  • 红色:当前标准差。
  • 绿色:吞吐量,表示服务器每分钟处理的请求数

我们来分析下图Google服务器的性能。

如何使用 JMeter 进行性能和负载测试?_服务器_16

要分析被测Web服务器的性能,您应该关注2个参数

  • 吞吐量
  • 偏差

吞吐量是最重要的参数。它代表了服务器处理重负载的能力。吞吐量越高,服务器性能越好。

本次测试中,Google服务器的吞吐量为1,491.193/分钟。这意味着 Google 服务器每分钟可以处理 1,491.193 个请求。这个值相当高,所以我们可以断定Google服务器具有良好的性能,谷歌好有钱。

偏差以红色显示——表示与平均值的偏差。越小越好。




总结

性能测试是软件测试的一个重要部分,它的主要目的是确定和评价系统性能的一些重要参数,例如响应时间、吞吐量、资源利用率和可扩展性。以下是进行性能测试的一些主要原因:

  1. 确定性能基准: 通过性能测试,可以确定系统在特定条件下的性能基准。
  2. 验证系统性能要求: 性能测试可以帮助确定系统是否满足预定的性能要求。
  3. 找出瓶颈: 通过性能测试,可以找出系统的瓶颈,如是否存在CPU过载、I/O问题、网络瓶颈或者内存限制。
  4. 确保系统性能满足用户预期: 通过性能测试,可以确保系统在负载增加的情况下仍然能够提供满足用户预期的服务。
  5. 预测系统行为: 对于负载的增加、硬件更改或软件升级,性能测试可以帮助快速预测系统的行为。
  6. 降低运营风险: 系统性能问题可能导致用户满意度下降,利润减少,甚至法律责任。进行性能测试可以降低这些风险。

在软件的整个开发和部署周期中,性能测试在确保软件产品的成功中起着关键作用。无论是在软件的初步开发阶段,还是在后续的版本升级和维护阶段,性能测试都是必不可少的。

如何使用 JMeter 进行性能和负载测试?_服务器_17


以上就是今天的全部内容,希望对大家有所帮助,也希望大家多多留言、点赞、在看、转发四连爱❤️  支持。 咱们下篇文章见,Bye~

标签:负载,性能,线程,测试,服务器,JMeter
From: https://blog.51cto.com/u_15717981/9385740

相关文章

  • MeterSphere操作之使用测试跟踪
    MeterSphere测试跟踪模块支持测试用例管理、测试用例评审、测试计划跟踪等。用户可以使用树状多级模块来分级分组管理项目下的测试用例,对已添加的测试用例进行评审,创建测试计划,将待测功能测试用例、接口测试用例、UI测试用例及性能测试用例添加到测试计划,执行测试计划,查看测试......
  • MeterSphere测试平台之使用接口测试
    用接口测试MeterSphere接口测试模块提供了接口定义、接口自动化等接口测试相关功能。用户可以使用树状多级模块来分级分组管理项目下的接口列表,创建执行接口用例测试接口,组合编排多个接口用例进行场景自动化测试。1接口定义管理¶进入【接口测试】->【接口定义】页面。......
  • MeterSphere之使用UI测试
    用UI测试MeterSphereUI测试提供了元素库、UI自动化、测试报告等UI测试相关功能。用户可以使用多级模块来组织管理项目下的UI自动化场景,执行场景,生成查看测试报告。UI测试模块是企业版X-Pack功能增强包功能,如需使用,请点击:申请企业版试用。注意事项修改/opt/mete......
  • MeterSphere之使用性能测试
    使用性能测试MeterSphere性能测试模块支持通过已有的接口测试用例、场景测试创建、上传JMeterJMX做性能测试,并按需设置并发用户数等测试参数,执行性能测试并实时查看性能测试报告。1创建测试资源池¶通过安装包安装MeterSphere后,系统默认使用当前节点创建了名为【LOCA......
  • 如何测试表单的必填字段?多角度详解!
    前言大家好,我是chowley,今天来聊一下我最近在工作中遇到的一个实际问题。在Web应用程序中,表单是用户与系统进行交互的重要方式之一。为了确保用户提供的数据完整和有效,测试表单的必填字段成为开发过程中不可或缺的一环。本文将从多个角度详细探讨如何有效地测试表单的必填字段,以保......
  • 解决“测试流程”问题的底层逻辑
    你好,我是刚哥。这周技术群有3个讨论激烈的问题,①进到一个完全没有规则流程的新公司,怎么接手安排让自己尽可能舒服点?②需求一个接一个,测都测不过来,哪还有时间写用例?③如果一个需求开发测试1天内进行,你还有其他测试任务,会怎么安排?这3个问题本质上都是测试流程问题,解决的底层逻辑是......
  • 测试工程师的成长,体现在2个地方
    你好,我是刚哥。技术群小伙伴A觉得上班没时间学东西,如果工作时间12小时到14小时,如何学习?小伙伴B,测试过程中时刻充满了学习呀,工作中对自己需求的部分搞清楚,就涉及到很多知识点的学习呀,比如去了解开发咋实现的,然后你如何去测试。学习是为了成长,对于测试工程师来说,功利点,成长最直接......
  • Eggplant—HMI自动化测试软件
    产品概述    Eggplant是英国TestPlant公司推出的创新性自动化测试工具。通过VNC或RDP通讯技术远程桌面连接被测对象,基于图像和文字识别算法进行对象定位,进而驱动和确认被测HMI设备的响应,能够实现自动化的HMI操作测试,较大提高HMI的功能测试效率。对于车机车辆网、T-BOX等功......
  • linux测试url的访问速度
    在Linux中,你可以使用curl命令来测试URL的访问速度。curl是一个强大的命令行工具,可以用于文件传输和测试网络连接。以下是使用curl测试URL访问速度的步骤:打开终端或命令行界面。输入以下命令:curl-o/dev/null-s-w"time_namelookup:%{time_namelookup}\ntime_connect:%......
  • web自动化测试复习巩固第一天
    selenium三大组成部分官网地址:http://www.selenium.dev seleniumide:firefox/chrome/edge安装插件不要30分钟就能学会,是个录制工具。seleniumwebdriver:第三方库。结合编程语言才能用。python/java/javascript/c#等。seleniumgrid:配置化。分布式的配置。同样的代码在不同......