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 工具还用于执行服务器基准测试和可扩展性测试。

审核编辑:郭婷

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

    关注

    14

    文章

    10440

    浏览量

    91849
  • JAVA
    +关注

    关注

    20

    文章

    3015

    浏览量

    117028
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    工具分享 / 征求反馈】我做了两个 Modbus 调试工具:MBSim 从站模拟器 + ModbusGateway TCP/RTU 软网关

    大家好,我最近整理并发布了两个个人维护的 Modbus 调试工具,想分享出来请大家测试和反馈。 第一个是 MBSim,一个 Modbus RTU/TCP 从站模拟器,主要用于在没有
    发表于 05-21 16:31

    一文读懂移动通信网络架构:4G/5G 组网与测试基础

    当前,4G/5G商用已落地、物联网持续深入发展,4G/5G 通信终端的通信性能直接决定设备可用性与用户体验。通信设备从研发到量产,产线信令测试是关键防线。通过基站
    的头像 发表于 04-03 17:38 3241次阅读
    一文读懂移动通信网络架构:4G/5G 组网与<b class='flag-5'>测试</b>基础

    欧冶半导体全域多场景芯片解决方案2026年冬季测试圆满收官

    日前,欧冶半导体全域、多场景芯片解决方案2026年冬季测试圆满收官。本次冬测历时22天,累积行驶里程近一万公里,覆盖黑河、漠河等中国最北端极寒地区,通过模拟用户
    的头像 发表于 02-04 10:42 814次阅读

    谁更有效?解码焊球剪切与键合点拉力测试真实对比

    在微电子封装可靠性评估中,焊球-剪切测试和键合点-拉力测试是两种最常用的机械性能检测方法。长期以来,工程界对这两种测试手段的有效性和适用场景
    发表于 01-08 09:46

    C语言单元测试在嵌入式软件开发中的作用及专业工具的应用

    需要硬件模拟场景 对于安全关键系统,建议选择支持MC/DC覆盖率分析的框架,如winAMS内置的覆盖率分析工具。 2. 测试流程优化 嵌入式C语言单元
    发表于 12-18 11:46

    电源测试为何弃用实际负载?模拟负载才是高效选择

    在电源研发、生产质检与性能验证的全流程中,负载测试是衡量电源输出稳定性、可靠性的关键环节。不少人会产生疑问:直接连接实际用电设备测试,难道不是贴合真实
    的头像 发表于 12-02 11:44 498次阅读
    电源<b class='flag-5'>测试</b>为何弃用实际负载?<b class='flag-5'>模拟</b>负载才是高效选择

    飞机舷窗材料的阳光模拟老化性能测试

    研发筛选到合规认证的关键测试设备。下文将深入探讨太阳光模拟器在飞机舷窗材料老化性能测试的应用与测试数据解读。太阳光
    的头像 发表于 11-26 18:04 539次阅读
    飞机舷窗材料的阳光<b class='flag-5'>模拟</b>老化<b class='flag-5'>性能</b><b class='flag-5'>测试</b>

    如何选择适合的智驾仿真工具进行场景生成和测试

    工具性能与特点,以帮助开发者优化自动驾驶系统的测试效率与安全性。 在选择适合的智驾仿真工具进行场景生成和
    的头像 发表于 11-25 10:32 540次阅读
    如何选择适合的智驾仿真<b class='flag-5'>工具</b>进行<b class='flag-5'>场景</b>生成和<b class='flag-5'>测试</b>?

    攻击逃逸测试:深度验证网络安全设备的真实防护能力

    逃逸攻击,真实模拟高级攻击者使用的躲避手法。 场景测试支持:平台适用于多种测试场景,包括设备评
    发表于 11-17 16:17

    如何进行动态策略的性能测试

    动态策略的性能测试核心是 “ 量化关键指标、模拟真实负载、验证极限能力 ”,聚焦 “响应速度、功耗控制、实时性、资源占用” 四大核心维度,通过精准
    的头像 发表于 11-13 17:55 2548次阅读
    如何进行动态策略的<b class='flag-5'>性能</b><b class='flag-5'>测试</b>?

    有哪些工具可以模拟特定设备或装置进行通信测试

    以下是模拟特定设备或装置进行通信测试的主流工具分类及具体推荐,覆盖工业自动化、电力系统、物联网等多领域需求,并附详细应用场景与操作特点: 一、工业协议
    的头像 发表于 11-12 10:35 474次阅读
    有哪些<b class='flag-5'>工具</b>可以<b class='flag-5'>模拟</b>特定设备或装置进行通信<b class='flag-5'>测试</b>?

    电池跌落测试设备:全方位模拟真实跌落环境

    38.3、IEC 62133、GB/T 31241-2022 等多项国内外标准,广泛应用于动力电池、储能系统、电动工具、电动两轮车及消费电子行业。了解更多电池安全测试
    的头像 发表于 11-01 15:27 1295次阅读
    电池跌落<b class='flag-5'>测试</b>设备:全方位<b class='flag-5'>模拟</b><b class='flag-5'>真实</b>跌落环境

    蓄电池综合测试仪是评估电池性能的重要工具

    测试、容量检测、内阻测量、循环寿命评估及安全性考核于一体,通过模拟真实骑行条件,对电池进行全面而精准的测试。该设备能够适用于多种类型的电池,
    的头像 发表于 10-10 16:03 929次阅读
    蓄电池综合<b class='flag-5'>测试</b>仪是评估电池<b class='flag-5'>性能</b>的重要<b class='flag-5'>工具</b>

    成品电池综合测试仪:保障电池品质与安全的核心工具

    随着新能源汽车、储能系统、消费电子等领域的快速发展,电池作为核心能源组件,其性能与安全性直接关系到产品的整体质量与用户体验。成品电池综合测试仪作为电池生产与质检环节的关键设备,通过模拟
    的头像 发表于 07-24 10:43 788次阅读

    解锁高品质音频体验:探索音频质量评估与测试的科学之道

    流量,用于呼叫建立、媒体传输等全流程测试。同时,系统也支持用户自定义构建SIP信令和RTP媒体流,以模拟真实业务中的各种语音
    发表于 07-22 11:15