您可能想知道,“如何利用 JMeter 进行性能测试? 不要害怕,因为本文将指导您完成它。 我们将深入探讨 JMeter 的含义,探索其优缺点,然后演示如何使用 JMeter 进行负载测试。 继续阅读以发现更多!
什么是 Jmeter?
JMeter,也被公认为Apache JMeter,是一个被广泛接受的开源软件,完全由Java制作。 其主要目的是对功能行为进行负载测试并评估性能。 开发人员和软件开发团队青睐 JMeter 进行性能测试,因为它具有全面的文档、强大的社区支持和既定的最佳实践。 该工具的成本效益,加上其开源性质,使其成为首选。 但是,由于其 100% 的 Java 基础,启动测试过程可能需要您的团队花费额外的时间和资源。
JMeter 负载测试的本质在于它能够对功能行为和仪表性能执行负载测试。 利用 JMeter 可以深入分析和测量 Web 应用程序或服务的性能。 通过对收集的数据进行审查和生成报告,您可以观察应用程序的行为,查明性能瓶颈,并获得对需要应用程序增强的领域的宝贵见解。
Apache JMeter 作为负载测试工具提供了几个优点和缺点。 了解这些优点和缺点可以帮助您在选择 JMeter 进行负载测试时根据其特定要求和约束做出明智的决定。 我们将介绍使用 JMeter 进行负载测试的一些优点和缺点。
JMeter 负载测试的优点
- 开源: JMeter 是完全免费的,允许开发人员访问源代码。
- 独立于平台: JMeter 是 100% 基于 Java 的,可以在各种平台上运行。
- 支持多协议: JMeter 同时满足 Web 应用程序测试和数据库服务性能评估的需求。 它涵盖了 HTTP、JDBC、LDAP、SOAP、JMS 和 FTP 等基本协议。
- 录制和回放: JMeter 有助于在浏览器上记录用户活动,这些活动可以模拟和回放。
- 可定制的报告: 测试结果可以以多种格式可视化,包括图表、表格、树和日志文件。
- 社区支持: JMeter 拥有一个庞大的社区,提供帮助、指导和教程。
JMeter 负载测试的缺点
- 基于协议的负载测试: JMeter 仅限于执行协议级测试,因此不适合测试基于 JavaScript 的应用程序(如 Angular、Ember、Knockout 等)或基于 AJAX 的应用程序。 由于现代浏览器严重依赖 JavaScript 和 AJAX 来提高性能,因此这种限制阻碍了对网站或应用程序性能的全面理解。 JMeter 缺乏像浏览器一样呈现 HTML 的能力,在完全掌握负载下的用户体验方面造成了巨大的差距。
- 系统和硬件限制: JMeter 需要安装在本地机器上,因此用户必须确保它们满足硬件要求并进行可能耗时的设置。 此过程可能涉及对硬件的额外投资。 运行大规模测试可能会迅速耗尽系统资源或导致错误。 此外,由于测试是在本地进行的,性能工程师在评估不同地理位置或用户群的性能时面临局限性。
- 复杂的用户界面: JMeter 是一个复杂的解决方案,不像其他负载测试工具那样用户友好。 对于新用户来说,浏览其复杂的功能可能令人生畏,需要大量的学习曲线。 在有效地构建和执行测试之前,大量的组件和功能需要更高水平的知识。 这种复杂性是工程师和开发人员寻求更精简、更直观的负载测试设置的障碍。
使用 JMeter 执行负载测试
使用 JMeter 进行性能测试具有多种优势,使其成为开发人员和测试专业人员的首选。 但是使用 JMeter 进行负载测试并不一定很困难。 我们将介绍如何使用 JMeter 进行性能测试,特别是如何使用 JMeter 进行负载测试。 负载测试需要彻底的研究和规划。 在设置负载测试之前,必须确定测试要求、范围和条件。 这可能涉及从不同来源收集数据,例如用于流量统计、会话持续时间和高峰时段访客计数的分析工具。 此外,查看过去的广告系列数据可以深入了解预期负载或并发用户数,以便针对您的网站或应用程序进行测试。
制定与您的特定环境相匹配并尽可能模拟真实世界场景的计划至关重要。 一旦你有了你的计划,你就可以开始在JMeter中设置你的测试计划,它包含不同的元素。 基本的 JMeter 负载测试通常包括测试计划、线程组和采样器。
创建 JMeter 测试计划
请按照以下步骤操作,并确保满足设置 JMeter 测试计划的要求。
1. 添加线程组
线程组表示负载测试所需的并发用户。 若要访问线程组,请右键单击
“测试计划
”,选择“
添加
”,然后选择
“线程(用户)
”,最后选择
“线程组
”。
从线程组属性对话框中,您还可以设置以下属性:
-
- 线程数(用户)
- 增补期(秒内)
- 循环计数(多少次测试迭代)
- 其他操作,如延迟、测试开始和停止时间,以及采样器错误后要采取的操作。
或者,您可以通过访问 文件 > 模板 > 选择模板 或从工具栏中选择模板图标来选择各种测试模板,而不是从”线程组”开始。
此时,您有一系列可用的模板选项,包括 Web 服务测试、Web 测试计划、功能测试等选项。 这些模板预先配备了构建测试计划所需的所有基本元素、部分和字段。
2. 配置采样器
采样器使 JMeter 能够调度各种类型的请求,例如 HTTP(用于网站、应用程序或 API)、FTP、SMTP、TCP 以及其他请求类型。 要访问采样器,请右键单击“线程组”,选择“添加”,然后选择“采样器”,然后选择符合特定测试要求的采样器。
在“配置采样器”部分中,系统会提示您输入其他详细信息,包括:
- 协议 (HTTP/S)
- 服务器名称或IP
- 路径(用于特定网页)
- 用于 API 负载测试的请求类型(GET、POST、头、PUT 等)。
3. 如何配置听众
侦听器使您能够检查采样器的结果。 若要访问侦听器,请转到
“线程组
”,选择“
添加
”,然后选择
“采样器
”,最后选择
“侦听器
”。
从超过 15 个侦听器中进行选择,每个侦听器都呈现相同的数据,但具有不同的视觉显示。 此外,您可以将多个侦听器合并到 JMeter 测试计划中。 可用侦听器的示例包括摘要报告、聚合图、查看结果树、在表中查看结果、简单数据编写器、BeanShell 侦听器等。
4. 如何记录负载测试脚本(可选)
对于简单的 HTTP 或协议级负载测试,请继续下一步并运行 JMeter 负载测试。 但是,如果需要配置模拟特定用户操作和路径的测试,则需要 HTTP(S) 测试脚本记录器。 请记住,此过程捕获 HTTP 流量,而不是从实际浏览器录制脚本。 以下是您需要遵循的步骤:
- 添加录制控制器(位于线程组中)
- 浏览您的网站或应用程序
- 通过 HTTP/S 请求记录您的操作
或者,您可以选择使用 JMeter 代理服务器。 虽然此选项允许从浏览器录制脚本,但设置过程可能非常耗时。 要使用 JMeter 代理服务器,请按照下列步骤操作:
- 导航到系统的代理设置
- 导入 JMeter 证书
- 配置代理设置
5. 运行 JMeter 测试
一旦你配置了你的侦听器,你的JMeter测试计划终于准备就绪了,你可以运行你的JMeter负载测试了。 运行 JMeter 测试的方法多种不同,但请务必先保存测试计划。
- 选项 1:选择绿色三角形/箭头来运行测试。
- 选项 2:在工具栏中选择”运行”按钮。
6. 查看和分析您的 JMeter 测试结果
在运行 JMeter 测试时,您可以实时监控结果。 例如,如果选择“在表中查看结果”选项,则将观察到每次运行或用户执行显示的结果。 结果还将包含其他指标,包括:
- 时间(以毫秒为限)
- 状态(显示有效响应和错误)
- 字节和字节发送
- 延迟
- 连接时间
通过分析这些结果,您可以查明错误并确定加载时间可能较慢的区域。 此外,将 JMeter 测试计划与测试结果进行比较可为进行性能改进和优化提供有价值的数据。 您还可以选择在负载升高的情况下进行额外的负载测试。 但是,如前所述,JMeter 具有局限性,可能不适合大规模测试。 在这种情况下,像 LoadView 这样的现代负载测试解决方案被证明比使用 JMeter 更有效。
负载测试替代方法:LoadView
在这一点上,您应该已经深入了解了 JMeter、它的优缺点以及性能测试功能。 在 JMeter 中设置负载测试涉及许多步骤和配置选项,这意味着需要大量时间用于测试准备而不是执行。 尽管 JMeter 是一个开源且免费的解决方案,但探索替代负载测试工具可能是值得的,这些工具提供符合您业务需求的增强功能。 即使您使用的是 JMeter,也可以将 JMeter 负载测试与 LoadView 集成,并获得 LoadView 提供的所有好处和功能。 我们将在下面介绍使用 LoadView 设置 JMeter 负载测试的一些步骤。
使用 Loadview 设置 JMeter 负载测试
1. 保存您的 JMeter 脚本
在 JMeter 应用程序中,将您的 JMeter 测试计划保存到本地计算机上的 JMX 文件。
2. 登录 LoadView。
如果您没有 LoadView 帐户, 则创建一个帐户既快速又简单。 当您注册时,我们将为您提供多达 5 次免费的免费负载测试!
登录到您的 LoadView 帐户,然后选择 JMeter 测试类型选项。
3. 导入您的 JMeter 脚本
导航到“配置任务”页面,然后选择“导入”以导入 JMX 文件。 文件的 XML 内容将显示在 JMeter Project 字段中。 在导入过程中,请求参数将自动转换为 LoadView JMeter 项目,包含以下参数:
- 目标网址或 IP
- 通往终点的路径
- 请求类型
- 请求头
- 文本断言
使用负载视图克服您的 JMeter 负载测试限制
注: LoadView 不会将线程组设置导入 LoadView JMeter 项目。 通过在 LoadView 中设置负载测试方案来配置线程属性,例如线程数和加速周期。 如果需要,您还可以在字段中编辑 XML 代码。
或者,在“设置”字段中,您可以选择定义测试会话的执行超时。 LoadView 在指定时间内等待目标资源的响应,如果执行时间超过限制,系统将结束会话并发出错误。 将此字段留空默认为 120 秒的超时限制。
4. 创建设备
单击”创建设备”并继续执行负载测试执行方案。
5. 配置测试执行计划
导入 JMeter 测试计划后,后续步骤涉及配置测试执行方案。 如果您的 JMeter 线程组配置了线程属性,并且您希望在 LoadView 中保持相同的负载模式,请根据提供的建议指示相应的负载类型参数。 或者,您可以从“负载类型”部分的各种负载曲线选项中进行选择,以满足您的特定测试需求。
6. 运行负载测试并分析结果
彻底配置负载测试计划后,启动 JMeter 负载测试。 测试将经历几个阶段,包括初始化、启动负载注入器和执行测试。 完成后,你将收到通知,并可以在“负载测试结果”页上访问负载测试结果。
如果您需要任何进一步的信息或帮助,请随时联系我们的团队。 我们的团队全天候提供服务,以满足您的所有负载和性能测试需求。
您可以轻松地使用像 JMeter 这样的免费开源工具来执行负载测试,但为了提升您的负载测试工作,值得寻找提供更多功能的替代方案。 话虽如此,LoadView 作为领先的付费性能测试解决方案脱颖而出,呈现了一系列功能。 其中包括用户友好的点击式脚本记录器、访问全球负载注入器服务器网络,以及配置各种负载曲线场景以增强测试灵活性的能力。 与 JMeter 相比,LoadView 不需要额外的基础架构考虑,因为一切都是无缝管理的。 与仅限于协议级负载测试的 JMeter 不同,LoadView 使用真实的浏览器,允许您评估关键站点、应用程序和 API 的实际性能。 LoadView 还提供其他通用测试选项,例如将静态代理 IP 列入白名单或利用现场代理,使您能够在防火墙后面测试应用程序。 立即免费试用,亲身体验 LoadView 的强大功能!