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

    文章

    9028

    浏览量

    85196
  • JAVA
    +关注

    关注

    19

    文章

    2960

    浏览量

    104557
收藏 人收藏

    评论

    相关推荐

    无线连接测试仪的技术原理和应用场景

    无线连接测试仪还具备网络模拟功能,可以模拟不同的网络环境和条件,如不同的接入点数量、信号强度、干扰情况等,以测试被测设备在各种复杂网络场景
    发表于 11-21 14:51

    汽车雷达回波发生器的技术原理和应用场景

    的波束并向前传播,以模拟真实的雷达工作环境。应用场景 自动驾驶系统的开发和测试:在自动驾驶系统的开发和测试过程中,汽车电子雷达回波发生器可以
    发表于 11-15 14:06

    OTA测试暗箱的技术原理和应用场景

    过程中,可以模拟不同的无线通信场景和条件,以评估被测设备的性能。 二、OTA测试暗箱的应用场景OTA测试
    发表于 11-14 14:36

    多通道负载测试性能评估?

    情况下的性能。这种测试通常用于评估系统的最大处理能力,以及确定系统在何种负载下开始出现性能下降。多通道负载测试可以
    发表于 11-11 16:44

    移动终端测试仪的技术原理和应用场景

    移动终端测试仪是确保移动设备如智能手机、平板电脑等性能和质量的关键工具。随着无线通信技术的快速发展,移动终端测试仪在确保设备性能、兼容性、信
    发表于 11-04 16:01

    源测量单元设备的技术原理和应用场景

    测试晶体管、二极管等器件的IV特性。这一过程不仅能够评估器件的性能,还能判断其可靠性。 此外,SMU还可用于测试材料的电阻率、分析电源管理集成电路(PMIC)的功率效率等应用
    发表于 10-22 11:10

    太阳膜测试仪的技术原理和应用场景

    太阳膜测试仪的技术原理和应用场景可以详细阐述如下:技术原理太阳膜测试仪的技术原理主要基于光学测量和物理定律。具体来说,它通过模拟太阳光中的各种波长(主要是紫外线、可见光和红外线)的辐射
    发表于 09-29 14:18

    智能IC卡测试设备的技术原理和应用场景

    包含多种功能模块,如CPU、RAM、EEPROM、ROM等,以及一个卡内操作系统(COS)。测试设备通过模拟读写器的功能,向IC卡发送指令和数据,并接收来自IC卡的响应,从而验证IC卡的各项性能是否达标
    发表于 09-26 14:27

    电源自动测试系统的技术原理和应用场景

    : 电子制造业:用于测试电子设备的电源稳定性和性能,如计算机、手机、平板电视等。 能源领域:可用于测试太阳能电池板、风力发电机等能源设备的
    发表于 09-06 15:36

    闪存的哪些扇区可用于用户数据存储?

    我想问一下闪存的哪些扇区可用于用户数据存储(例如配置、登录名/密码)。目前,我正在使用外部存储器,但使用板载闪存的某些扇区会更便宜。我尝试在用 blank.bin 编写的一些扇区中写入数据,但最后
    发表于 07-12 08:13

    电池模拟模拟测试电池充放电性能

    电池模拟器是一种强大的工具,能够在模拟真实电池的输出状态和充放电特性方面发挥重要作用。它可以准确地模拟电池的充放电状态、放电深度、开路电压和
    的头像 发表于 06-11 16:05 791次阅读
    电池<b class='flag-5'>模拟</b>器<b class='flag-5'>模拟</b><b class='flag-5'>测试</b>电池充放电<b class='flag-5'>性能</b>

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

    一个JMeter实例可能无法产生足够的负载来对你的应用程序进行压力测试。如本网站所示,一个JMeter实例将能够控制许多其他的远程JMeter实例,并对你的应用程序产生更大的负载。
    的头像 发表于 02-25 09:33 576次阅读
    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 1008次阅读
    CanEasy多<b class='flag-5'>场景</b>应用,让汽车总线<b class='flag-5'>测试</b>更简单

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

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