0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

JMeter工具可用于性能测试来模拟真实的用户场景

星星科技指导员 来源:嵌入式计算设计 作者:Maulik Patel 2022-06-19 16:00 次阅读

性能测试是一种非功能测试技术,用于确定系统参数在各种工作负载下的响应性和稳定性。性能测试衡量系统的质量属性,例如可扩展性、可靠性和资源使用情况。性能测试帮助产品所有者确定产品解决方案的基准。性能测试的目标不仅是发现代码中的错误,而且要找出瓶颈。在性能测试中,质量工程师使用任何可用于性能测试的工具来模拟真实的用户场景。

Apache JMeter 是一个开源 Java 桌面应用程序,旨在执行负载测试和检查 Web 应用程序的功能行为。质量工程师可以使用 JMeter 来分析和测量 Web 应用程序或各种服务(包括 Rest API)的响应时间。它可用于模拟服务器、网络或对象上的重负载,以测试其强度或分析不同负载类型下的整体性能。JMeter 与 JDK 5 或更高版本兼容。

此外,JMeter 通过让您创建带有断言的测试脚本来验证您的应用程序是否返回了您期望的结果,从而帮助您对应用程序进行回归测试。为了获得最大的灵活性,JMeter 允许您使用正则表达式创建这些断言。请注意,JMeter 不是浏览器——它在协议级别工作。

JMeter 支持的协议包括:

HTTP、HTTPS 站点

网页服务

通过 JDBC 驱动程序的数据库

目录 – LDAP

管理系统

SMTP

FTP 服务

JMeter 特点:

它有一个简单且用户友好的 GUI。

它独立于平台。在 Windows 上,可以使用 JMeter.bat 文件启动 JMeter 测试,在 Unix/Linux 上,通过单击 JMeter Shell Scripts 启动测试。

它以 XML 格式创建和存储其测试计划。这表明我们可以使用文本编辑器生成或创建测试计划。

它是一个多线程框架,用于使用多个线程进行并发采样。

它有助于自动化功能测试。

它是如何工作的?

JMeter 模拟一组用户向目标服务器发送请求,并通过表格、图表等返回显示目标服务器/应用程序性能/功能的统计信息(图 1、3-5)。

pYYBAGKu1-aAbvUnAAEE39heDV8035.png

【图1 | JMeter模拟]

要使用 JMeter,必须定义测试计划,这意味着必须指定:

要访问的 http 或其他 URL 或要运行的 SQL 查询

如何存储/显示结果

运行多少线程来创建所需的负载/压力

在 JMeter 术语中,这些称为线程、采样器、侦听器等。完整的测试计划包含所有这些。要创建它,请右键单击 JMeter GUI 左侧窗格中的“Test Plan”并添加所需的元素(图 2)。

poYBAGKu1--ASoP6AAFYbbVSfFE032.png

【图2 | JMeter的测试元素]

Apache JMeter 如何模拟多个用户?

让我们看一下网页请求是如何从用户的浏览器发送到网络服务器的,以及网页最终是如何显示的。理解这个工作流程将使我们有机会想象 JMeter 如何适应这个工作流程,以及它如何能像浏览器一样做同样的事情。

步骤 1:用户在浏览器中执行操作,即键入站点地址、单击链接或填写表单并按提交。

在 JMeter 中,这不是必需的。

第 2 步:浏览器创建 HTTP 格式的请求并将其发送到服务器。

在 JMeter 中,这成为一个 HTTP 请求采样器。HTTP 请求采样器以 HTTP 格式发送请求。

第 3 步:Web 服务器接收 HTTP 请求,创建 HTML 响应,并将 HTML 发送回浏览器。

在 JMeter 中,对于服务器来说,它是相同的请求。

第 4 步:浏览器接收 HTML。

在 JMeter 中,HTTP 请求采样器接收 HTML 响应并将其记录下来以供分析。

第 5 步:浏览器在屏幕上呈现 HTML,以便用户可以看到文本和颜色 (GUI)。

JMeter 不会像浏览器那样呈现 HTML。

那么,就 JMeter 而言,是什么促成了一次用户事务呢?

HTTP 请求采样器以 HTTP 格式发送请求。》 服务器接收 HTTP 请求,创建 HTML 响应并将 HTML 发送回 HTTP 请求采样器。》 HTTP 请求采样器接收 HTML 响应并记录它以供分析。

当我们在 JMeter 测试计划中添加一个 HTTP Request Sampler 时,它会存储一个网页调用和接收序列。我们可以将其称为单用户事务。一旦我们将这个告诉 JMeter,它就可以做同样的事情 n – 次数。它还同时多次执行此操作。

最后,JMeter 通过制作采样器的副本并在单独的线程中运行它们来模拟多个用户。

因为 JMeter 不完全是浏览器,所以 HTTP 请求采样器使所有接收到的数据都可用于进一步分析。View Tree Listener 用于可视化接收到的响应。View Tree Listener 是了解发送了什么请求、响应是什么以及事务结果的好方法。

为什么选择 JMeter?

JMeter 是一个开源工具,拥有众多虚拟用户的支持。

脚本在 JMeter 中不是必需的,但像 Loadrunner 这样的工具需要在 C 中编写脚本。

与其他工具相比,它可以轻松进行参数化和关联。

虚拟用户的设置不需要额外的配置,因为它会在 JVM 上自动生成 v-users

JMeter 是跨平台的。

poYBAGKu1_yAXg_yAAFH6RklJo0996.png

【图3 | JMeter接口

pYYBAGKu2AaAfjTyAAFGt3CipEw470.png

【图4 | 以表格形式报告]

【图5 | 以图形格式报告]

结论

JMeter 工具易于用于在 Web 应用程序服务器上注入负载。开发和质量工程师可以使用 JMeter 工具轻松模拟服务器上的繁重负载,无需为虚拟用户进行额外设置,无需额外的脚本编写工作,并且可以以图表和表格摘要的形式测量准确的响应时间。JMeter 结果图表有助于定位瓶颈并提高 Web 服务器应用程序的性能。质量工程师可以通过分析 JMeter 结果图表来识别罪魁祸首 RestAPI。JMeter 工具还用于执行服务器基准测试和可扩展性测试。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    8013

    浏览量

    82209
  • JAVA
    +关注

    关注

    19

    文章

    2903

    浏览量

    102867
收藏 人收藏

    评论

    相关推荐

    Docker在JMeter分布式测试中的作用

    一个JMeter实例可能无法产生足够的负载来对你的应用程序进行压力测试。如本网站所示,一个JMeter实例将能够控制许多其他的远程JMeter实例,并对你的应用程序产生更大的负载。
    的头像 发表于 02-25 09:33 139次阅读
    Docker在<b class='flag-5'>JMeter</b>分布式<b class='flag-5'>测试</b>中的作用

    【先楫HPM5361EVK开发板试用体验】性能测试基准---Dhrystone (3)

    1、Dhrystone介绍 Dhrystone是一种用于测量计算机性能的基准测试程序。它最初由Weicker和Emery编写于1984年,是一种用于衡量计算机处理器
    发表于 12-20 22:14

    CanEasy多场景应用,让汽车总线测试更简单

    CanEasy是一个基于Windows的总线工具用于分析和测试CAN、CAN FD和LIN以及汽车以太网系统。通过高度自动化和简单的配置模拟总线流量,CanEasy
    的头像 发表于 12-11 09:46 787次阅读
    CanEasy多<b class='flag-5'>场景</b>应用,让汽车总线<b class='flag-5'>测试</b>更简单

    显卡性能测试的方法和流程

    本文将详细介绍显卡性能测试的方法和流程,以帮助读者更好地了解如何评估自己的显卡性能。 一、测试软件和工具 要进行显卡
    的头像 发表于 12-07 17:21 1320次阅读

    redis集群性能测试工具有哪些

    Redis是一种高性能的内存键值存储系统,它被广泛应用于各种互联网应用和大规模的数据存储中。为了评估Redis在不同场景下的性能,我们需要使用一些
    的头像 发表于 12-04 11:36 254次阅读

    Radview--Selenium网站性能测试

    WebLOAD与Selenium(用于Web浏览器应用程序的开源测试工具)的集成,使您可以将执行真实活动的真实Web浏览器集成到性能
    的头像 发表于 08-31 10:58 295次阅读
    Radview--Selenium网站<b class='flag-5'>性能</b><b class='flag-5'>测试</b>

    CPU性能基准介绍及其在国内市场的应用

    性能表示。 本白皮书详细介绍了CPU性能基准测试的最新发展,以及它是如何从80年代早期的基准测试演变而来的。 它还概述了使用各种可用的基准
    发表于 08-28 07:02

    CoreSight™ 访问工具(CSAT)用户指南

    CoreSight TM Access Tool(CSAT)程序是一个基于控制台的测试程序,用于验证CoreSight系统。 该工具包含许多命令,允许使用DSTREAM和VStream调试控制
    发表于 08-18 07:38

    CoreSight™访问工具(CSAT)用户指南

    CoreSight TM Access Tool(CSAT)程序是一个基于控制台的测试程序,用于验证CoreSight系统。 该工具包含许多命令,允许使用DSTREAM和VStream调试控制
    发表于 08-16 08:13

    用于SoC600的CoreSight访问工具(CSAT600)用户指南1.0版

    用于SoC600的CoreSight访问工具(CSAT600)提供对ARM调试接口架构规范ADIV6.0或CoreSight SoC-600目标的访问。 CSAT600工具用于在Cor
    发表于 08-16 07:20

    Morello指令模拟器用户指南

    Morello应用程序。它还包括运行时工具,可以收集与Morello相关的事件和计数器的信息。此外,它还包括一个交互式调试器,以帮助运行Morello应用程序。 模拟可用于: •在非Morello
    发表于 08-08 07:55

    首发!雷达场景模拟器实测演示

    雷达场景模拟器(Radar Scene Emulator)是由是德科技推出的用于仿真并测试复杂的真实驾驶
    的头像 发表于 07-26 07:45 740次阅读

    如何使用Jmeter进行分布式测试;检索日志?

    使用 Jmeter 进行分布式测试;检索日志
    发表于 05-10 13:00

    是否有推荐的方法或工具可用于在TPL接口上执行故障注入测试

    是否有推荐的方法或工具可用于在 TPL 接口上执行故障注入测试
    发表于 04-18 08:24

    请问哪些工具可用于QoriQ PA?

    我正在使用 QoriQ T 系列 PowerPC 处理器进行开发。有哪些工具可用?Code Warrior 似乎不再可用。CW4NET 不包含 PowerPC 支持。QCVS 似乎只是 ARM Layerscape。PowerP
    发表于 04-07 06:44