JMeter 负载测试
2023 年终极指南

JMeter 负载测试指南概述



性能测试是软件和应用程序开发生命周期中一个极其重要的方面。 如果您的 Web 应用程序、网站或 API 将被大量用户使用,您需要了解它们将如何应对流量高峰或持续高流量的长时间。 快速搜索性能测试工具将发现许多免费、开源和基于商业的选项。 一个如此流行的工具是阿帕奇JMeter。 如果您是性能测试的新手,您可能会问自己什么是 JMeter? 杰米特是如何工作的?

JMeter 是一种非常流行的基于 Java 的开源性能测试工具,用于针对各种 Web 和软件服务、API (SOAP 和 REST)、Web 应用程序和其他 Web 服务运行基于协议的负载测试。 与您今天在市场上看到的其他性能和负载测试工具和解决方案相比,JMeter 是最早引入性能测试市场的工具之一,这就是为什么它仍然流行并广泛应用于当今。 本指南将涵盖 JMeter 的所有方面、优点、特征和缺点。 我们将研究 JMeter 的工作原理、如何与 JMeter 一起进行性能测试、JMeter 的替代方案以及更多。

负载应力性能测试

JMeter终极指南菜单

JMeter–它是如何工作的

在基本级别上,JMeter 通过允许用户创建并向服务器发送 HTTP(超文本传输协议)请求来模拟应用程序或服务的访客。 然后收集服务器响应数据,以图表和报告的形式以视觉方式显示统计数据。 从收集和创建的报告数据中,用户可以观察应用行为和性能瓶颈,深入了解需要改进应用的位置。 需要注意的是,JMeter不是浏览器,这意味着它只在协议级别工作,不支持客户端或用户所做的所有操作,例如渲染JavaScript。

尽管存在此限制,JMeter 确实为这些问题提供了解决方法,它提供了缓存管理器、Cookie 管理器和头管理器等功能和元素,使 JMeter 能够像真正的浏览器那样执行和执行更多操作。 JMeter 是一个基于 Java 的桌面应用程序,因此,为了开始使用 JMeter,在开始性能测试之前,您必须满足各种先决条件。 例如,您必须安装最新版本的 Java,并且必须满足能够使用 JMeter 的最低系统要求。 与基于 SaaS 的负载测试工具相比,这可能需要一些额外的时间和资源。

JMeter是最好的负载测试工具吗?

基于负载视图目标的曲线

长期以来,JMeter 一直是最受欢迎的开源负载测试工具之一,这使得它成为开发人员和软件开发团队在进行性能测试时乐于使用的最常用工具之一。 此外,由于其在市场上的寿命长,使用 JMeter 需要大量的文档、社区支持和最佳实践。 此外,从预算的角度来看,它是一个免费的开源软件,它使它成为一个有吸引力的解决方案的团队和组织,因为几乎没有或根本没有资源需要开始。

然而,随着技术的变化和基于 SaaS 的软件的兴起,负载和压力测试解决方案也变得更加普遍。 虽然仍然需要像 JMeter 这样的开源负载测试解决方案,但有许多基于云的解决方案都附带了所有功能、优势和支持,价格具有成本效益。 例如,从基于协议的测试转向基于浏览器的测试对于从用户的角度理解性能至关重要。 与 20 世纪 90 年代初的浏览器相比,当今的现代浏览器为 Web 应用程序提供了更多的功能和支持。 要从客户端收集所有必要的性能数据,您需要一个工具或解决方案,可以支持在真实浏览器中进行负载测试。

性能与JMeter的负载测试有什么区别?

当我们通常考虑性能测试时,或者使用”性能测试”一词时,通常想到的是负载测试。 更重要的是,这些术语有时可以互换使用。 但是,有区别。 负载和压力测试只是性能测试系列中性能测试的子集或类型。 负载测试可以针对各种系统、网站、Web 应用、API 等执行。 应用模拟负载,通常从较低级别开始,并随着时间的推移缓慢增加负载,以便测量负载下的性能以及整个系统的反应。

压力测试和负载测试是相关的,但应力测试的目标是增加负载量,直到系统出现故障,或性能降低。 通常,负载测试将具有预先定义的负载限制,以免导致系统故障。 其他类型的性能测试包括峰值测试、耐力测试、可扩展性测试和体积测试。 虽然这些类型的性能测试的执行计划和目标不同,但执行性能测试是为了了解为什么您的应用程序加载速度可能低于预期,识别与磁盘或 CPU 使用相关的可扩展性问题,或者哪些特定元素或组件阻碍了性能。

免费试用 LoadView!

没有信用卡,没有合同。

如何使用JMeter执行负载测试:
初学者的分步说明

像 JMeter 这样的开源性能测试工具为组织提供了为其 Web 应用程序、网站和 API 运行性能测试的能力,但不必处理任何基于商业或付费的性能测试工具的前期投资。 在选择基于桌面的开源负载测试解决方案(如 JMeter)和基于付费的 Web 解决方案(如 LoadView)时,需要考虑许多因素。 如果您只是 JMeter 的初学者,您可能需要一些时间来了解这一切是如何工作的,并阅读适当的文章或观看有关如何从 JMeter 开始的视频。 让我们看一下安装 JMeter 所涉及的一些步骤以及如何配置基本负载测试。

第 1 步:验证系统要求

与任何其他桌面应用程序一样,您需要确保您的系统满足运行 JMeter 所需的基本要求。 正如我们之前在本指南中提到的,JMeter 是一个基于 Java 的应用程序,因此您需要确保已安装 Java 以及正确的版本。 JMeter 与 Java 8 或更高版本兼容。 此外,为了性能和安全性,建议您安装最新的小版本的 JMeter。 JMeter 可以在不同的 Windows、Mac 和 Linux 操作系统上运行,因此请务必验证您的操作系统是否兼容或您具有合规的 Java 实现。

第 2 步:下载 JMeter 二进制文件或源代码

一旦您验证了您的系统是否满足所有必要的系统要求,您可以根据您的特定环境或要求下载最新的 JMeter 二进制文件或源文件。二进制文件包含 JMeter 程序的编译版本,您可以立即运行它。另一方面,无需使用包管理器即可安装源文件,允许开发人员或团队自行配置和编译程序,并对安装的程序拥有更多控制权。在大多数情况下,软件的二进制版本被安装。请注意,有不同的文件下载类型,包括.zip和.tgz文件扩展。

第 3 步:JMeter 安装过程

一旦您选择了 JMeter 的二进制或源版本,它将下载到您的系统。 您可以选择打开文件,将其移动到新位置,或在系统中创建新的文件夹位置,以便以后更快地访问。 从那里,您可以开始提取文件。 这可能需要几分钟才能完成整个安装过程。 根据操作系统的不同,您可能会在安装过程中遇到不同的步骤,但一旦安装了 JMeter,JMeter 的功能将保持不变。

杰米特页面

第 4 步:JMeter 用户界面

当您启动 JMeter 时,您将打开并被带到测试计划窗口。 从这里,您将能够构建您的测试计划。 此窗口包括访问位于窗口左上侧附近的菜单和主工具栏。 您可以从菜单和主工具栏访问一些相同的功能,但主工具栏可更快地访问负载测试创建和配置过程中将要使用的一些工具和功能。 在窗口的右上角附近,您将在测试执行期间看到时间、日志(查看/隐藏)和用户选项。
主节称为编辑器部分,用于查看和配置负载测试的各种测试计划元素和字段。 在编辑器部分的左侧,您将看到测试计划的树视图,通过测试创建和配置过程,并可以扩展和关闭单个元素,以单独深入到它们。

负载步进曲线

第 5 步:创建负载测试计划

JMeter 用户可以从头开始创建负载测试计划,也可以从文件下拉菜单中的各种测试计划模板中进行选择。 模板包括 SOAP 网络服务测试计划、基本和高级 Web 测试计划、FTP(文件传输协议)测试计划、功能测试计划等。 这些测试模板将包括所有必要的特定元素、部分和字段,用于创建和构建负载测试计划。 如果您是性能测试或 JMeter 本身的新手,您最初可能更喜欢使用模板,而不是从头开始构建测试计划,然后再转到更高级的测试计划。

要创建测试计划,请简单导航以”文件”,并从工具栏中选择”新”或”选择”新按钮”。 请务必注意,您必须在GUI模式下运行JMeter才能创建测试计划。 CLI 或命令行接口用于执行负载测试。 接下来,我们将讨论指定负载测试(也称为线程组)的用户数量。

第 6 步:创建线程组

在线程组对话框中,您可以设置和调整多个线程属性,如线程数(用户)、提升周期(在几秒钟内)和循环计数(测试迭代次数),以及其他操作,如延迟、测试启动和停止时间以及采样器错误后要采取的操作。

第 7 步:配置采样器

在 JMeter 中,采样器是允许 JMeter 发送不同类型的请求的。 例如,这些请求可以是 HTTP 请求(用于网站、应用程序或 API)、FTP 请求、SMTP 请求、TCP 请求以及许多其他请求。 例如,如果您想针对网页或网站运行负载测试,请选择 HTTP 请求。 从此处,您将显示输入其他详细信息,如协议 (HTTP/S)、服务器名称或 IP、路径(用于特定网页),以及可用于 API 负载测试的 GET、POST、HEAD、PUT 等请求类型。

第 8 步:配置侦听器

要能够查看采样器结果,您必须接下来配置 JMeter 中的”听众”。 在 JMeter 测试计划窗口中,您可以从许多不同的听众中进行选择,例如摘要报告、聚合图、查看结果树、在表中查看结果以及许多其他选项,以查看和分析您的测试结果。 此外,您还可以将多个侦听器添加到 JMeter 测试计划中。 从这一点,您的测试计划已完成,您可以运行测试。

第 9 步:记录负载测试脚本

如果您只是希望在测试配置方面运行基本的 HTTP 或协议级负载测试,那么您实际上不需要做更多。 但是,如果您需要配置更类似于用户操作的测试,则需要使用其 HTTP (S) 测试脚本记录器。 因此,在 JMeter 中,这为测试计划又增加了一步。 在线程组中,您需要添加录制控制器。 录制控制器允许您浏览网站或应用程序,并将通过 HTTP/S 请求记录您的操作。 您还可以每页添加多个录制控制器。 录制控制器可节省时间,因此您不必手动添加每个请求。

但是,缺点是您仍在录制 HTTP/S 请求,实际上您并没有从用户的角度在真实浏览器内录制步骤。 现在,您也可以使用 JMeter 代理服务器,它允许您从浏览器中录制脚本,但要配置此服务器需要一段时间才能设置。 您必须进入系统的代理设置,导入 JMeter 证书,然后最终配置代理设置。

或者,像 LoadView 这样的解决方案,它使用 EveryStep Web 记录器,是从 JMeter 的录制选项(如点和单击脚本)中迈出的一大步,没有耗时和复杂的设置。 只需打开录音机并开始脚本编写即可。

第 10 步:执行负载测试

在配置了所有负载测试详细信息和设置后,您可以简单地在工具栏中选择”运行”按钮,然后开始测试。 请记住,要在 CLI 模式下运行测试以获得更好的结果。

第 11 步:查看负载测试结果

根据您选择的侦听器类型,您可以在测试运行时查看结果。 例如,如果您在 表中选择了”查看结果”, 则将看到每次运行时显示的结果或执行的用户。 结果中还包括其他指标,如 时间 (毫秒)、 状态 (显示有效响应和错误)、 字节和字节发送延迟连接时间。 从这些结果中,您可以看到发生任何错误的位置或可能加载时间较慢的位置。

负载测试性能指标
问题?

与性能工程师一起安排 LoadView 的免费演示
或浏览我们的详细 知识库 以获取更多信息。

使用 JMeter 进行性能测试
它与负载测试有何不同

在本指南的前面,我们讨论了性能测试是什么,以及性能测试保护伞下存在的不同类型的性能测试,如负载测试、压力测试、可伸缩性测试、峰值测试等。 如果我们看看JMeter提供什么,我们将看到它最适合执行负载测试和压力测试。 但是,由于负载是从您自己的设备模拟的,因此仅基于基于协议的测试很难使用JMeter确定实际的测试结果。

更重要的是,由于更多的应用程序依赖于浏览器而不是服务器来实现功能和性能,您也应该从只能执行基于协议的负载测试的工具转向。 在 JMeter 网站上,它清楚地指出,它不能像浏览器那样执行或渲染 JavaScript,仅包括响应时间。 能够测试您的应用程序或页面在负载下如何呈现是用户体验的重要组成部分。 不仅如此,您的用户并不都位于与公司相同的地理区域。 正确的性能测试工具还应提供一种轻松执行外部分布式测试的方法,以便更好地了解跨地理区域的实际性能。

像 LoadView 这样的解决方案也适用于负载、压力、峰值和可伸缩性测试,它提供了真实浏览器、分布式测试、多个负载曲线场景和点击脚本工具等功能,使其成为对站点、Web 应用程序、API 和其他 Web 服务进行性能测试的绝佳解决方案。

将 LoadView 视为满足网站和 Web 应用程序负载测试要求的全面、整体解决方案,并将我们在 LoadView 的团队视为与负载测试相关的所有方面的专家合作伙伴,这是很有帮助的。 像 LoadView 这样的完整负载测试平台有许多效率和好处,它通过节省时间和卓越的结果来证明预算是合理的。 通过使用 LoadView,DevOps 团队可以充分利用其负载测试过程,而无需费力的脚本编写,从而获得更好的结果。

负载测试开发人员

LoadView 的负载测试结果也是业内最准确的,因为我们除了支持多种设备类型外,还支持来自世界各地地理位置的真实浏览器和真实用户测试。 团队可以相信他们的测试结果是准确的 LoadView,这意味着可以将时间和精力放在开发上,而不必担心负载测试结果是否准确,因为人为错误或开源负载测试平台不像 LoadView 那样严格维护或支持。 仅凭这一点就可以让我们的系统对大多数严肃的 DevOps 团队来说是值得的。

除此之外,LoadView的支持是首屈一指的。 我们的负载测试专家可在负载测试过程的每个阶段为您提供支持。 这使团队能够快速轻松地将常规负载测试纳入其 DevOps 流程,从而在开发方面以及最终为您的网站和 Web 应用程序的用户带来更好的结果。 LoadView 使协作负载测试变得简单、高效和有效。

如何使用JMeter执行API测试
完整说明

在前一节中,我们讨论了如何在网站或与 JMeter 应用上设置基于协议的负载测试的分步说明。 在本节中,我们将使用 JMeter 测试不同的 API,如 SOAP 和 REST API。 安装和设置过程与上文相同,因此我们不会再解释或涵盖整个过程。 但是,我们将涵盖有关 API 测试的一些基础知识,以及有关使用 JMeter 执行 API 测试的考虑。

休息 API 测试

REST(代表状态传输)API(或RESTful API)用于开发各种网络服务。 与 SOAP API 不同,REST 不是协议,而是基于URI(统一资源标识符)和 HTTP 协议的建筑风格。 REST 通常用于在互联网上显示公共 API。 当用户/客户端提出 REST API 请求时,它就像在互联网上搜索某些东西一样。 输入您要查找的内容,然后返回结果列表,或在 REST API 的情况下获取资源。 但是,在 REST 请求中,有各种组件,如头、数据(主体)、方法和端点(URL 的路线)。 从请求中返回的内容通常为 JSON 或 XML 格式,但 JSON 是最常用的格式。 肥皂API只允许XML格式。

页面速的见解

第 1 步:创建测试计划

首先,打开JMeter。 您将看到有一个新的测试计划窗口将打开。 或者,如果您已经打开 JMeter,您可以从主工具栏中选择新按钮以创建新的测试计划。

第 2 步:创建线程组

与前面部分所涵盖的一样,Thread Group 窗口是您可以添加用户数量(线程)、设置提升时间和测试迭代次数(循环计数)的地方。

第 3 步:配置采样器

接下来,我们需要添加采样器。 您可以从 JMeter 中的一些预配置采样器中进行选择,也可以从您自己的采样器中进行选择。 对于此 API 测试方案的目的,我们将假设我们使用的是预配置选项。 为此,只需右键单击 “线程组 “以打开下拉窗口。 选择 添加,然后 选择采样器。 从这里您可以查看采样器选项列表。 对于测试 API,我们将要选择 HTTP 请求 ,这将打开下一个窗口。 从此处,您可以命名您的测试,以及配置您的 REST API 测试的设置。 需要注意的一件事是,HTTP 请求窗口内有两个部分,基本和高级。 我们将专注于此测试的基本设置。 您将注意到各个领域,如协议、服务器名称或 IP、端口号、HTTP 请求(GET/POST/HEAD/PUT/删除等)、参数等。

因此,首先,在服务器名称或 IP(互联网协议)字段(只是域名)中输入 API URL,以及相应的协议,并在 路径 字段中添加 API 的路径。 如果这是 GET 请求,请从HTTP 请求列表中选择GET。 如果您有某些参数(如特定页面),则可以在参数字段中添加 URL 的这一部分。 您也可以将其包含在 路径 字段中,但是,通过将其添加到 参数 字段,您有其他字段选项,如 URL 编码?、 内容类型 “包括等值

最后,在您的某些请求中,您需要提供您的请求标题。 为此,只需在测试计划窗口中导航到 HTTP 请求 。 右键单击将打开下拉菜单。 从这里选择 添加,然后 配置元素。 关于此下拉菜单的另一个注意是,这也是您将转到添加任何 API 身份验证方法的位置。 这将打开您可用的选项。 例如,我们将选择 HTTP 头经理。 这将打开 HTTP 头管理器 窗口,您可以在其中添加 API 头。 完成设置后,您可以转到下一步。

第 4 步:添加听众

听众是用来保存和查看测试结果的内容。 您可以添加尽可能多的听众。只要你想。 要添加侦听器,只需右键单击 线程组 并选择 “添加”,然后 选择”倾听者“。 这将打开下拉菜单,在那里您将看到超过 15 个选项可供选择。 通常选择的听众包括查看结果树和表中查看结果。 请注意,对于提供图形表示的侦听器(如视图结果树),它将消耗更多的内存和 CPU。 添加”倾听者”后,您可以保存测试计划。

第 5 步:运行测试并查看结果

在配置并保存负载测试详细信息和设置后,您可以在工具栏中选择”运行”按钮,测试将开始。 您将在窗口中看到您的采样器结果加载,并提供 REST API 测试的各种详细信息、数据和指标,如延迟、响应代码、连接时间等。

肥皂API测试

在 JMeter 中创建 SOAP(简单对象访问协议)API 测试的 REST(表示状态传输)API 就像创建 REST API 负载测试的步骤一样。 但是,SOAP 不同于 REST API,因为它是它自己的协议,因此在加载测试 SOAP API 时需要考虑一些因素,例如安全性和合规性、带宽(SOAP API 通常需要更多的资源)和功能,例如 RES API 没有的重试逻辑。 让我们看一下在JMeter中创建SOAP API测试所涉及的步骤。

页面速的见解

第 1 步:测试计划

我们在前面的章节中已经谈到了这一点,但 JMeter 提供了各种测试计划模板。 这些可以通过主工具栏中的菜单或 模板 图标访问。 有一个选项称为 建立一个SOAP网络服务测试计划。 选择这将创建并打开测试计划。 您将看到其他部分,如 用户定义变量、HTTP 请求默认值、用户数量 等。 由于这是一个模板,因此在某些领域还需要输入适当的数据和信息,因此也会存在占位符值。

第 2 步:线程组

就像我们在 REST API 配置中涵盖的一样,您需要添加您的用户数量,或 线程、增量期和 循环,或测试迭代。 作为主线程组中的子组,您将能够访问 HTTP 请求 设置,就像我们涵盖的 REST API 设置一样。 但是,此部分的外观和感觉稍有不同,因为它将默认显示 SOAP API 请求的主体。 还包括 HTTP 标头经理响应断言 子节。 与 REST API 配置一样,您还可以添加其他配置元素,例如 HTTP 授权管理器,用于需要包含特定授权详细信息的情况。

第 3 步:测试取样器

对于 SOAP API 负载测试,您需要添加 HTTP 请求取样器。 从此窗口,您可以输入相应的详细信息,如 服务器名称或 IP、路径、HTTP 请求、端口号以及 SOAP 请求的 主体数据

 

第 4 步:测试侦听器和运行测试

一旦您配置了测试计划,列表中的最后一个项目是添加您的听众,这将显示您的测试结果。 同样,您可以添加尽可能多的听众,只要你喜欢和适当的肥皂API负载测试。

 

第 5 步:运行肥皂 API 负载测试

一旦您的测试计划配置和设置设置设置,您最终可以运行您的 SOAP API 负载测试,并在测试完成后查看结果。

与 JMeter 一起进行休息和肥皂 API 测试: 摘要

如您所见,使用 JMeter 设置 REST 或 SOAP API 负载测试时会附带许多不同的步骤和配置选项,这相当于花费大量时间设置测试,而不是运行它们。 像 LoadView 这样的解决方案通过为 REST 或 SOAP API 创建测试为您提供简单的选项和导航。 LoadView 解决方案可删除所有这些复杂的步骤,并提供用户友好的界面,让您完成每个步骤,因此无需费时配置或来回微调测试所花费的时间。 该解决方案还可以执行具有不同负载曲线的测试,以更好地模拟您的测试要求,以及提供 20 多个地理位置来运行您的 API 测试。 使用 JMeter 时,用户数量(或线程)取决于设备的硬件功能,这可能会影响用户数量以及您的测试结果。 在下一节中,我们更多地讨论 LoadView 和其他 JMeter 替代方案,以便您可以更好地了解不同的负载测试解决方案提供哪些解决方案。
负载应力性能测试
免费试用 LoadView!

没有信用卡,没有合同。

JMeter替代方案–免费和付费

作为开发人员或软件测试人员,您知道,虽然功能测试很重要,但性能测试是软件开发过程的关键一步。 您的应用程序可能工作正常,但如果您的应用程序在受到数百或数千用户的点击时加载不当,它有什么好处呢? 对用户,这将导致挫折,随后,他们将离开任何他们打算做的。 你不能指望他们会回来。 如果您的网站、应用程序或 API 将由许多用户访问,无论是外部、不同地理区域还是内部,从您自己的组织内访问,则需要测试它们,以确保加载时间低、响应时间快且内容呈现正确。 所有这些指标和更多指标都负责提供无缝的用户体验。

正确的性能测试工具可以使所有不同。 虽然不乏免费、开源和付费的性能测试工具和解决方案,但归根结底,它主要涉及哪些最适合您的需求、团队的专业知识和预算。 像JMeter这样的开源性能测试工具虽然是免费的,但无法满足当今应用所需的一些性能测试要求。

LoadView

LoadView 是当今市场上付费性能测试解决方案之一。 该解决方案提供了大量功能,如点和单击脚本记录器、访问全球负载喷油器服务器网络,以及设置不同负载曲线方案以获得更多测试灵活性的能力。 与 JMeter 不同,无需额外的基础设施或考虑。 一切都为你管理。 而且,与只能提供协议级负载测试的 JMeter 不同,LoadView 使用真正的浏览器,因此您可以观察最关键站点、应用程序和 API 的实际性能。 LoadView 还提供多种选项,例如将静态代理 IP 列入白名单或使用现场代理,以便对防火墙后面的应用程序进行测试,使您和您的团队在性能测试方面更加灵活。

加载视图徽标alt
LoadView
LoadView 提供易于阅读的性能报告和仪表板,因此您可以清楚地了解哪些元素有助于性能不理想,还包括网页和 Web 应用程序测试的参考视频,因此您可以将视频与报告进行比较,以便从用户的角度亲眼看到和比较视频的外观。 LoadView 提供月度和年度计划,以及 24×7 支持所有客户,无论您有什么计划,就像其他工具一样。 LoadView 还使用与 Dotcom 监视器中的解决方案相同的平台,因此您可以使用在负载测试期间创建的脚本进行持续监控。 最后,LoadView 正在不断发展和发布新功能。 最近的一些更新包括流式媒体的负载测试和支持负载测试邮递员集合。

网络负载

网络加载

来自 RadView 的 WebLoad 是另一种基于商业或付费的性能测试解决方案,您在为您和您的团队寻找合适的负载测试工具时可能会遇到该解决方案。 根据您的特定需求,WebLoad 有多种不同的选项:自托管模型或基于云的模型。 无论您选择哪个选项,软件的外观和感觉都是一样的。

但是,本地版本就像 JMeter,您必须从自己的硬件托管和管理它,但 WebLoad 提供商的其他功能(如在自己的云提供商中托管它),如果您有的话。 公司选择自主办的原因可能是安全问题或政策,以及只是对部署拥有更多的控制权。 基于 SaaS 的选项就像 LoadView 一样,测试基础结构为您提供全面管理。

在创建测试脚本方面,WebLoad 脚本使用 Selenium 作为基于代理的记录器来编写脚本加载测试场景,但是,如果您不熟悉 Selenium,则很难使用这些场景。 钚本身也有其缺点,但这就是 WebLoad 提供负载测试功能的地方,如大量并发用户、报告、技术支持等。 至于定价和计划,定价不在他们的网站上,所以你必须联系他们定价。 此外,他们的计划仅限于三个选项:试用版、专业版和企业版。 他们的专业计划只提供三台负载发生器。 要访问无限位置,您必须选择企业计划。

茄子

来自Keysight技术公司的茄子是一个自动化平台,专为软件开发过程中的所有因素,如功能测试和监控而设计。 该解决方案提供人工智能辅助测试,以帮助缩短测试时间,并提供软件应用程序的更快部署。

茄子标志
与 JMeter 一样,他们的性能测试产品”茄子性能”必须安装在您当地的系统上。 和任何软件一样,要安装它,必须满足某些先决条件。 更重要的是,茄子性能由多个组件组成,如性能工作室、测试控制器和分析器、性能喷油器和 Web 虚拟用户,所有这些都有不同的硬件要求。

茄子性能需要一些培训,尤其是对于缺乏经验的用户。 他们的脚本工具充当代理记录器,以捕获服务器/客户端之间的所有 HTTP 流量。 用户有其他选项,例如从钚或 HAR (HTTP 存档) 文件导入脚本。 与其他负载测试工具相比,在定价方面,没有列出定价,因此您必须联系他们的团队进行报价,但是,它们确实提供免费试用。

压力刺激徽标

压力刺激

压力刺激是负载和压力测试解决方案,可用于测试网站、Web 应用程序和 API。 产品必须下载到本地机器,但可以配置为从云运行,无论是通过负载发生器在您自己的机器上、私有云上,还是在公共云网络(如 AWS (亚马逊 Web 服务) 或 Azure 中安装,或从单台机器上安装。

该工具提供各种优点和功能,例如使用测试向导从浏览器创建负载测试脚本/场景、支持许多协议和 Web 应用技术以及支持基本身份验证方法。 压力刺激还与 Fiddler 配合,将性能测试和调试相结合。 压力刺激提供多个产品版本,如免费、专业版、企业和服务提供商,每个版本允许用户访问特定功能和优势。

Gatling

加特林是另一个流行的开源负载测试工具。 与 JMeter 一样,它在性能测试行业已经存在很长时间了。 Gatling 的核心应用了几种不同的技术:Scala、Netty 和 Akka,这可能不是大多数开发人员或团队所熟悉的。

gatling

通常,像 Python、JavaScript、PHP、C#等框架是您会看到的一些更常见的框架。 尽管如此,加特林仍然很受欢迎,并广泛使用,因为Scala可以在大多数系统上运行。 Gatling 的一些好处包括创建负载测试作为代码,在单个线程内运行多个虚拟用户(与 JMeter 不同),并且可以集成到 CI 环境中。 然而,尽管有这些优势,Gatling 在它支持的技术和协议数量上是有限的,不提供用户友好的界面(如果您的团队更技术化,这可能不是一个因素),而且因为它是一个开源解决方案,所以它的成员社区较小,这可能会限制您在需要时获得帮助或支持的能力。

微焦点

负载运行器

来自 MicroFocus 的 LoadRunner 是另一个传统负载测试解决方案,许多开发人员和团队都听说过,甚至已经使用过,因为它已经存在很长时间了。 随着时间的推移,功能和名称发生了变化。 目前有三个不同的负载运行器包:负载运行器专业人员、负载运行器企业和负载运行器云(原风暴运行器)。

LoadRunner 的一些功能和优势包括支持 50 多种 Web 和移动应用技术和框架,支持 50 多项脚本技术,以及与您的团队已经使用的许多 CI(持续集成)和协作工具进行集成。 LoadRunner 及其产品和解决方案系列一直是企业级别的负载测试解决方案,因此与其他基于云的负载测试工具相比,这些解决方案和相关解决方案的成本将相当高。

刺槐

蝗虫是基于 Python 框架的开源负载测试工具。 与我们讨论过的其他开源工具一样,蝗虫的好处是提供了在代码中创建负载测试的方法,但是,由于没有用户界面,因此使用不易使用的脚本记录器没有功能,例如 LoadView 解决方案提供的功能,并且它仅捕获和支持 HTTP 协议响应。 它不适合在客户端级别理解性能。

刺槐

但是,如果您拥有一支知识渊博的 Python 团队,并且您运行良好的小型负载测试,则这不是问题。 此外,与基于云的负载测试平台不同,蝗虫必须使用本地机器运行分布式测试,如果无法支持并发用户的数量,则必须使用其他计算机,因此,还需要考虑其他考虑。

火焰表

火焰计

BlazeMeter 是一款基于 SaaS 的付费功能和性能测试工具,它基于 JMeter 的开源功能,扩展其功能,如扩展负载测试、访问外部负载喷油器、全面且易于阅读的报告和仪表板,以及支持其他开源平台(如加特林、铀、蝗虫、黄瓜等)。

用户可以使用免费的开源工具,并具有从云中进行负载测试的一些优势。 但是,所有 LoadView 计划中包含的某些功能(如易于使用的点和单击脚本记录器、防火墙后面的测试)和 24/7 支持仅在更高级别的 BlazeMeter 计划中访问。

免费试用 LoadView!

没有信用卡,没有合同。

加特林 vs. 杰米特 vs. 负载视图

正如我们在本指南中讨论的那样,您为性能测试决定的工具(无论是开源还是付费负载测试工具)应该支持您正在测试的应用程序、技术和协议,并且用户友好,并且可以提供必要的报告和数据,以便您和您的团队能够正确理解性能问题发生的位置。

我们已经谈到了一些更流行的JMeter替代品,但现在让我们比较加特林,JMeter和LoadView,以及我们认为最适合加载和压力测试的Web应用程序,网站和API。

选择正确的性能测试工具:加特林 vs. JMeter vs. 负载视图

在选择正确的性能测试工具时,每个工具始终有某些优点和缺点。 盖特林和 JMeter 都是流行的开源工具,可为开发团队提供更多的定制和修改能力。 但是,这意味着,如果您和您的团队刚刚开始使用这些工具,可能会有更多的学习曲线。 脚本编写的灵活性通常伴随着额外的配置,最终可能变得比预期更耗时。 另一方面,LoadView 是一款完全管理的基于云的性能测试解决方案,可以运行基于浏览器的测试,并支持来自真实浏览器的脚本编写,这是 JMeter 和 Gatling 无法提供的功能。 此外,由于盖特林和 JMeter 都安装在本地设备上,因此由于系统限制,很难进行大规模测试。

基于浏览器的负载测试工具的优点

基于浏览器的负载测试工具(如 LoadView)提供了开源工具无法提供的许多功能和好处。 例如,在加载测试 Web 应用程序时,LoadView 使用”每个步骤 Web 记录器”,允许用户仅通过应用程序或页面导航即可创建脚本(桌面和移动浏览器),就像您打算用户执行的一样。 没有像 JMeter 和 Gatling 那样涉及编码或手动脚本,但是,如果您需要以任何方式自定义脚本,您可以这样做。 设置和测试配置也简单明了。

流式介质负载喷油器有效负载

LoadView 解决方案将带您完成流程的每一步,以便您和您的团队可以专注于测试执行。 最后,LoadView 用户可以访问全球超过 20 台负载喷油器服务器,因此从用户所在的位置进行测试将为您提供更逼真的性能数据,而不是从本地机器捕获 HTTP 响应。 查看报告、仪表板和瀑布图表,了解您的应用程序、网站或 API 对负载测试的反应。

BlazeMeter vs. JMeter vs. LoadView

与本指南中前几节所涉及的一样,BlazeMeter 是基于云的 JMeter 负载测试版本,为开发人员提供了将负载测试提升到一个新的水平的方法,并消除了 JMeter 的限制,例如报告、脚本/协议支持和测试复杂的 Web 应用程序。 BlazeMeter 和 LoadView 都是基于云的负载测试平台,允许开发人员和团队扩展其负载测试,并在多个地理位置运行它们。 但是,与 LoadView 等解决方案相比,BlazeMeter 是一个复杂且昂贵的解决方案,提供的不仅仅是负载测试功能,现在提供功能测试以及 API 测试和监控作为其包和计划的一部分,一些团队可能会发现这是不必要的。

虽然像 JMeter 这样的开源负载测试工具在性能测试中仍然占有一席之地,但 Web 应用程序和技术正变得越来越复杂,这就是为什么像 LoadView 这样的解决方案是理想的。 LoadView 支持所有流行的协议、框架和浏览器,不同的负载曲线选项,可实现更真实的测试,与市场上其他基于云的解决方案相比,它是一种经济高效的解决方案。

灵活。 可 伸缩。 强大。

全部来自一个方便的负载测试解决方案。

终极 J 米特常见问题

性能测试是应用程序开发过程中的关键部分。 开放源码工具(如 JMeter)为开发人员和团队提供一种免费且简单的方法,以便进行基于协议的负载测试。 不仅如此,性能测试还确保开发 Web 应用程序所投入的时间和精力在用户面前得到了回报。 缓慢加载应用程序、站点和 API 会减损其体验。 JMeter 是一种负载测试工具,已经存在很长时间,具有广泛的功能、功能和配置考虑。

以下是一些关于 JMeter 的常见问题和答案。

目录

 

什么是JMeter增量期?

在 JMeter 中配置负载测试时,用户必须考虑的字段之一是增量期。 增量期是到达测试中设置的用户数量或线程所需的时间长度。 例如,如果您将线程数设置为 5,并且您的增量周期为 50 秒,则每个线程之间将有 10 秒的延迟。 设置增量周期可确保所有线程不同时执行,并避免在测试开始时工作负载过高。

 

什么是 JMeter Json 提取器, 它是如何工作的?

JMeter JSON(JavaScript 对象符号)提取器,或者与 JMeter(JSON 后处理器)一起调用的提取器,完全按照名称所暗示进行。 它允许用户从 JSON 响应中提取数据或文本内容,并将这些数据与请求进行比较,或将这些值传递到其他请求。 我们之前在本指南中谈到了 JMeter 采样器,这是执行 JMeter 测试的实际工作。 如果您使用的是 JSON 提取器,则必须在您已指示的采样器下创建此元素作为儿童元素创建。

 

我可以使用JMeter的命令行格式吗?

JMeter 中的负载测试计划是在 GUI(图形用户界面)模式下创建的。 创建测试后,测试本身可在 CLI(命令线接口)模式下运行,该模式以前称为非 GUI 模式。 在 CLI 模式下执行测试会消耗更少的内存,因此负载生成器上可以使用更多的线程。

 

JMeter 的最大吞吐量是几?

JMeter 可以使用的吞吐量取决于本地机器的硬件。 您可以通过试错确定吞吐量,并增加用户数量或线程,以及当您开始收到有关命中内存容量的错误消息时。 有一些解决方法来增加用户数量,例如在 CLI 模式下运行、使用 LAN(局域网)连接而不是 Wi-Fi 来增加堆空间或内存,或在其他计算机上运行脚本。

 

JMeter是最好的免费负载测试工具吗?

虽然 JMeter 是最受欢迎的免费开源负载测试工具之一,但还有很多其他免费负载测试工具可用。 归根结底是您需要支持的应用程序或技术、团队的能力以及您需要的测试结果和报告类型。 有许多工具使用不同的脚本框架和扩展功能,因此找到最能满足您需求的工具非常重要。 付费负载测试解决方案通常更完整,并消除了手动创建和配置负载测试的很多麻烦。

 

除了JMeter,还有什么最有报酬的替代品?

如今,开发团队和性能测试人员有许多免费和付费的 JMeter 替代方案。 我们在上面的章节中讨论了其中的一些,如负载查看、WebLoad、火焰计和负载运行器。 付费工具在开源工具上的一些优点是,它们减少了配置和脚本负载测试的时间,通常支持更多的技术和框架,提供对更多负载生成器的访问,因此您不必管理网络和专用支持。

 

如何安装J梅特?

安装 JMeter 简单明了,但是,由于它需要安装在本地机器上,您安装 JMeter 的机器必须满足特定的系统要求。 此外,由于 JMeter 是 Java 应用程序,因此您必须安装符合或最新版本的 Java。 JMeter 提供了几个不同的二进制文件和源文件供用户选择。

 

如何使用JMeter加载测试?

使用 JMeter 加载测试需要几个步骤,这些步骤可能会有所不同,具体取决于您的测试是什么。 我们详细讨论了本指南前几部分与 JMeter 设置负载测试的过程,但为了简单起多大,以下是使用 JMeter 进行负载测试所涉及的步骤:

  • 配置负载测试计划。
  • 添加并配置您的线程组。
    • 录音控制器
    • 线程数(用户)
    • 上升期
    • 循环计数(迭代)
  • 测试脚本记录器(如果记录用户交互)
    • 网络设置
    • 安装证书
    • 浏览器设置
  • 添加和配置采样器
    • 高频、FTP、小型贸易计划或TCP请求等。
    • 服务器名称或IP
    • 网址路径
  • 添加和配置侦听器
    • 汇总报告、汇总图、查看结果树、表中查看结果等。
  • 运行测试
    • 收集并查看测试结果。

JMeter 豆壳断言的一个很好的例子是什么?

在 JMeter 中,用户可以使用内置的豆壳组件。 豆壳是一个开源的爪哇语翻译。 BeanShell 为用户提供了多种优势,如应用程序和脚本扩展性、调试以及动态处理 Java 对象和 API。 有许多断言,JMeter 支持取决于您的测试方案。 JMeter 中的豆壳断言允许用户使用豆壳脚本检查特定断言。 这方面的一个示例是检查服务器是否在 JSON 字段中返回特定响应或字符串或值。 还有一些预先定义的变量可以实施到脚本中,例如故障信息、采样器数据、示例结果等。 JMeter 内部指出,用户应移动到 JSR223 测试元素,并从豆壳切换到 Groovy 功能。

 

是否有JMeter在线认证之类的内容?

没有通过JMeter网站本身的官方JMeter在线认证,但是,有JMeter在线认证,虽然其他公司,如火焰计,乌代米,VSkills,埃杜雷卡,和其他。 YouTube 上还有一些来自常规 JMeter 用户的精彩教程,这些教程可以访问,以帮助您完成特定步骤或排除您可能遇到的任何问题。

 

JMeter 可以解析 Json 响应吗?

在 JMeter 中创建和设置测试计划期间,用户可以选择多个后处理器。 其中之一包括JSON提取器。 此功能允许用户使用 JSON-PATH 语法提取所需的特定数据,并在 Sampler(作为儿童元素)后进行配置。 JSON-PATH 后处理器窗口中有几个属性,如名称、可变名称、JSON 路径表示、匹配编号、计算调谐var 等。

 

你能用JMeter和詹金斯和马文吗?

JMeter 可用于 CI/CD 和管理工具,如詹金斯和马文。 Jenkins 和 JMeter 一样,也是一个基于 Java 的开源工具,允许用户自动进行测试。 Maven 用于构建和管理基于 Java 的项目。 对于使用 JMeter 与詹金斯, 你必须有一个活跃的詹金斯帐户 (以及安装 Git 插件), 并让詹金斯安装在同一台机器上, 你有 JMeter 安装。 您的JMeter脚本应保存在Git中,以便通过詹金斯访问它们。 一旦你把你的帐户绑在一起,你可以通过詹金斯进行配置和创建测试的过程。 使用 Maven,JMeter 提供可以通过 GitHub 访问的插件,允许用户通过 Maven 项目运行测试,而不是以脚本身份运行测试。

 

什么是JMeter后处理器?

在 JMeter 负载测试设置中,有预处理器和后处理器。 预处理器在 Sampler 请求之前执行一些操作,例如从 Web 页面获取数据。 另一方面,处理后处理器运行在采样器元素之后,通常用于从 HTTP 响应中提取或解析数据。

 

什么是JMeter前变量?

前变量是执行脚本之前在阿帕奇 Groovy 脚本中使用的几个变量之一。 其他示例包括日志(日志)、ctx(JMeterContext 对象)、变量(JMeter可变对象)、道具(JMeterProperties)、线程名称采样器,仅举几例。 前变量可用于 JSR223 处理器后操作,例如获取某些信息,如连接时间、延迟、字节、URL 信息等,用于 HTTP 请求线程组。

 

JMeter是否需要代理证书?

当使用 JMeter HTTP (S) 测试脚本记录器时,用户必须经过各种配置步骤才能使用该功能。 其中一个步骤包括启动 JMeter 代理服务器,以便从浏览器中脚本操作。 要做到这一点,JMeter 用户必须安装 JMeter CA (证书管理局) 证书。 HTTP/S 连接使用证书验证服务器与客户/浏览器之间的连接。 安装 JMeter CA 证书允许 JMeter 充当服务器,以便它可以从浏览器中提取 HTTPS(超文本传输协议安全)响应。

 

如何防止 JMeter 会话过期?

在每个不同的 JMeter 示例器中,都有特定的配置选项,包括设置各种超时参数,如连接超时、读取超时、响应超时、查询超时等。 如果 Sampler 不支持超时,则应将其设置足够长的时间,以便在负载测试期间不超时。

 

如何防止 JMeter 会话过期?

JMeter 示例测试、对话框、步骤和所有 JMeter 测试元素的屏幕截图可在 JMeter 网站、JMeter 维基和 JMeter 常见问题部分以及第三方 IT 学习和资源中心(如 GitHub、GitLab、Guru99 和 Bitbucket)中找到。 JMeter 拥有广泛的内容和社区支持支持知识库。

 

除了JMeter,最好的选择是什么?

像 JMeter 这样的开源负载测试工具需要广泛的 JMeter 和编程知识知识,以及一个经验丰富的团队来设置和执行测试。 JMeter 是负载测试的早期先驱之一,但网站、应用程序和 API 已变得更加复杂,需要新的负载测试工具、解决方案和技术。 我们已经讨论了很多替代,开源和付费,JMeter在本指南中,如加特林,负载视图,网络加载,负载运行器,蝗虫,和火焰计。 虽然一个免费的,开源的,选项可能似乎有吸引力在第一,它配备了大量额外的手动配置和工作。 基于 Web 的解决方案(如 LoadView)允许测试人员和团队专注于负载测试,使用真正的浏览器,并避免他们承担管理负载喷油器和额外硬件的负担。 LoadView 支持最新的协议和技术,支持邮政等第三方工具,并提供来自世界各地的云负载喷油器服务器网络。

 

是否值得为负载测试工具付费?

有许多伟大的开源负载测试工具,我们在此指南中讨论了其中的一些。 很难放弃一个免费的工具,开源解决方案可能无法提供所有功能,开箱即用,你需要。 许多付费负载测试工具支持多个协议、第三方集成、提供脚本工具和多个定价计划,并在需要时访问支持。 此外,正如我们在 JMeter 中看到的,它是一个极其复杂的工具,需要大量的知识才能使用。 设置测试计划和各种配置需要考虑的许多步骤。 如果您以前没有使用过 JMeter,可能需要一些测试才能正确使用。 付费负载测试工具通常会一步一步地引导您完成整个过程,因此在完成测试计划之前,它已准备就绪。 您不必浪费额外的时间创建更多的测试或返回并重新配置测试。 如果您能找到一个工具,支持您需要测试的技术,伟大的功能集,并在您的预算内,这是值得支付负载测试工具。

负载视图负载测试负载曲线

我们的负载测试解决方案 LoadView 以经济高效的包为用户提供基于云的最佳负载测试。 与 JMeter 不同,它不是一个真正的浏览器,它只使用基于协议的测试,就像我们在本指南中讨论的一样,对于当今的网站和应用程序来说,这些测试是不够的。 现在将大量性能执行推入浏览器,因此必须有一个解决方案,可以编写脚本、执行和模拟浏览器中的真实用户操作。 JMeter 无法执行 JavaScript,因此 AJAX(异步 JavaScript 和 XML)请求,因此这对许多性能测试人员来说是一个很大的劣势。 LoadView 与”每个步骤”网络记录器一起支持动态 Web 应用技术,如 JavaScript、AJAX、Java、HTML5、PHP 等。 创建负载测试脚本就像像普通用户一样轻松浏览您的应用程序一样简单。 此外,LoadView 平台为用户提供了基于云的负载生成器全球网络,而不是像 JMeter 提供的本地机器那样产生的负载,这提供了更逼真的条件,因此,更好的测试和报告结果。

JMeter 如何处理负载测试中的动态数据?

JMeter 可以使用正则表达式提取器或 JSON 提取器等各种元素在负载测试中有效地处理动态数据。 这些元素允许 JMeter 从服务器的响应中捕获动态数据,并在后续请求中重用它。 这对于测试会话 ID 或安全令牌随每个请求而更改的应用程序至关重要。

JMeter 可以与其他工具集成以增强测试吗?

是的,JMeter 可以与各种其他工具集成,以增强其测试能力。 例如,它可以与 Selenium 一起用于基于浏览器的测试,或者与 Grafana 和 Prometheus 等监控工具集成,以更深入地分析性能指标。 这使得 JMeter 成为各种测试环境的多功能选择。

什么是 JMeter 计时器,它们如何影响负载测试?

JMeter 计时器是模拟真实用户行为的重要组成部分。 它们在请求之间引入了延迟,这有助于创建更真实的负载场景。 计时器的类型包括常数定时器、高斯随机定时器和统一随机定时器,每种计时器都提供不同的方法来模拟用户思考时间。

JMeter 提供了 HTTP Cookie Manager 和 HTTP Cache Manager 来分别处理 Cookie 和缓存。 这些管理器通过像普通 Web 浏览器一样存储和发送 cookie 来帮助模拟真实的浏览器。 它们对于在负载测试期间维护会话和管理用户状态至关重要。

在 JMeter 中编写脚本的最佳实践有哪些?

在 JMeter 中编写脚本时,建议:

使用命名约定轻松识别元素。
使用测试片段模块化测试,以实现可重用性。
参数化测试以轻松更改变量,如服务器名称和用户凭据。
明智地使用断言来验证响应,而不会使测试计划过载。
定期保存测试计划以防止数据丢失。
JMeter 可以模拟不同的网络条件吗?
JMeter 允许您使用“HTTP 请求默认值”配置来模拟各种网络条件。 这可能包括带宽、延迟和数据包丢失的设置,使测试人员能够了解应用程序在不同网络条件下的性能。

JMeter 如何支持数据库测试?

JMeter 支持通过 JDBC Request 进行数据库测试。 这允许您通过执行 SQL 查询、存储过程或其他 SQL 操作来加载测试数据库。 它需要设置 JDBC 连接配置,您可以在其中定义数据库详细信息和凭据。

什么是 JMeter 断言,它们是如何使用的?

JMeter 中的断言用于验证对服务器发出的请求的响应。 它们有助于检查响应是否包含某些文本、是否匹配正则表达式或是否满足某些条件。 常见的断言包括响应断言、JSON 断言和大小断言。

如何在 JMeter 中管理大型测试计划?

要在 JMeter 中管理大型测试计划,请务必:

将测试计划分解为更小、更易于管理的模块。
使用“包含控制器”包含外部测试片段。
定期检查并删除不必要的元素以优化性能。
利用 JMeter 的函数和变量来减少冗余。

JMeter 监听器的作用是什么,常用哪些?

JMeter 中的侦听器用于查看和分析测试结果。 常用的侦听器包括“查看结果树”、“汇总报告”和“图形结果”。 它们提供了可视化数据的不同方法,有助于识别性能问题和瓶颈。

JMeter 可以用于压力测试吗,如何?

是的,JMeter 可用于压力测试,方法是将其配置为生成超出应用程序正常容量的负载。 这有助于识别系统的断裂点并了解其在极端条件下的行为方式。

是否可以自动执行 JMeter 测试?

JMeter 测试可以使用其命令行界面自动执行。 这对于将 JMeter 测试集成到持续集成管道中特别有用。 像 Jenkins 这样的工具可以触发 JMeter 测试,从而允许定期和自动化的性能测试。

线程组在 JMeter 中的意义是什么?

JMeter 中的线程组表示执行一系列操作的用户或线程。 它们定义要模拟的用户数、爬坡期以及执行测试的次数。 线程组的正确配置对于模拟真实的用户场景至关重要。

如何调试 JMeter 测试计划?

要调试 JMeter 测试计划,您可以:

使用日志查看器检查测试执行期间的错误或问题。
添加 Debug PostProcessors 以查看变量和响应的值。
使用断言验证请求是否返回预期响应。
逐步构建测试计划,一次添加和测试一个元素。

什么是 JMeter 中的分布式测试,何时使用?

JMeter 中的分布式测试涉及使用多个系统(远程节点)在服务器上生成更大的负载。 当您的测试需要的资源多于单台计算机所能提供的资源时,或者当您想要模拟来自不同位置的流量时,这特别有用。

将负载测试进行到
下一级

体验无与伦比的功能,具有无限的可扩展性。 没有信用卡,没有合同。