Apache JMeter可用于性能测试的工具

发布时间:2023-04-10  

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


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


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


JMeter 支持的协议包括:

HTTP、HTTPS 站点

网页服务

通过 JDBC 驱动程序的数据库

目录 – LDAP

ETC

SMTP

FTP 服务

JMeter 特点:

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

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

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

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

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


它是如何工作的?

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

pYYBAGLDmLyAbv4uAAEE1_r1K7I908.png

【图1 | JMeter模拟]

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

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

如何存储/显示结果

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

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

pYYBAGLDmMSAFB35AAFYeQLS2jA368.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 是跨平台的。

pYYBAGLDmMuAGwpzAAKUR3Ilzl0422.png

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

pYYBAGLDmNWAM2glAADFudQhUYY045.png

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


结论

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


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>