JMeter介绍

在本文中我们将了解什么是性能测试、为什么选择 JMeter、JMeter 与 HP LoadRunner。

什么是性能测试?

在我们继续探索 Jmeter 及其安装过程之前,我们需要了解什么是性能测试以及 JMeter 作为工具如何支持性能测试。

就像学生需要表现良好才能提升自己的水平一样。 同样,应用程序(移动或 Web 或桌面)需要表现良好,才能在竞争激烈的市场中更上一层楼。

性能测试衡量 您的应用程序在不同工作负载下的性能。 有许多参数可用于确定负载测试中的服务器是否运行良好,本文稍后将讨论这些参数。

  • 举一个简单的例子。 在浏览器中输入“www.facebook.com”,它显示了 Facebook 的主页使用时间10秒。 现在假设 1000 人同时输入“www.facebook.com”并点击 Google 主页显示可能超过 10 秒 。
  • 因此,在不同的工作负载(用户数量)下性能会发生变化。 这种类型的测试非常重要,因为无论您的应用程序有多么好的设计和功能,但如果它的性能很差,那么很有可能失去所有潜在的目标受众 。

通过下图我们可以清晰看到比较

JMeter介绍

性能测试主要考虑以下参数:
  • 吞吐量 - 它被定义为每秒的事务数。 例:假设银行客户服务一次只能处理 30 个呼叫,因此其余呼叫者需要排队。 这意味着吞吐量是 30
  • 响应时间 ——这个时间是用户从服务器收到响应所用的时间
  • 延迟 是信息的第一个字节到达用户端的时间。例:假设用户点击 HTTP 请求以检索网页。 因此,接收该网页的第一个字节的时间就是该请求的延迟时间
  • 可扩展性 - 它是指应用程序可以承受的最大负载
  • CPU 负载、内存使用和资源使用
为什么是JMeter?

JMeter 最初是由 Apache Software 的 Stefano Mazzocchi 开发的。 基本上,JMeter 是一个基于 Java 的桌面应用程序。 JMeter 使用 Swing 图形 API,不是由特定于平台的编码实现的,只要有JAVA即可。JMeter的安装自己行搜索。

Jmeter支持以下协议:

  • HTTP、HTTPS
  • FTP
  • JDBC
  • SMTP、IMAP
  • LDAP
  • TCP
  • SOAP

JMeter的优点:

  • 免费--JMeter是免费的,Apache官网下载即可;
  • 友好的界面--测试人员可以很容易地熟悉它的大部分组件,工具内提供每个组件的帮助文档
  • 高度可扩展--用户可以使用 JSR223 创建自己的采样器,并且有许多采样器插件可用,测试人员增加测试能力
  • 协议支持--JMeter 不仅可用于应用程序性能测试,还支持多种协议
  • 记录-- JMeter 内置了 HTTP(S) 测试脚本记录器,可用于记录来自网站或移动应用程序的所有操作,然后可以模拟负载以测试各种负载条件下的性能。 此外,还有一个 chrome 扩展可用于记录操作,然后可以在 JMeter 中使用相同的脚本来扩展负载
  • 集成selenium--可以与selenium进行集成测试
  • 安装简单
  • 图形化的报告
HP LoadRunner VS JMeter
JMeter Loadrunner
开源,免费 惠普产品,许可证还是很贵的
协议支持有限 更多的协议支持
Jmeter 是一个基于 Java 的产品,使用基于 sprint 的 API,这使得它独立于平台,可以在任何环境下运行,无论是 win、mac、Linux。 它使用基于 C 的语言、Java、Java Script 和 VB。
负载生成能力有限。 在具有高 RAM 和处理器的机器上,Jmeter 只能产生 1-2k 用户的负载。 增加负载可能会导致内存不足异常。 负载生成能力更高。
Jmeter的技术熟练程度较低。 LoadRunner 技术精湛。
Jmeter 在云中运行有很多复杂性。 Load Runner 也很容易在云环境中运行。
Jmeter 中的录制功能非常简单,并且也支持可扩展性。 有一些 chrome 插件,可以直接在 Jmeter 中导入脚本。 与 Jmeter 相比,Load Runner 中的记录功能也不复杂。
Jmeter 的结果不是实时的。 LoadRunner 提供相对更实时的结果
Jmeter 在用于 SAP 等企业产品时效率不高。 即使使用 SAP、Siebel 等,Load Runner 也能提供高效的结果。
结论

JMeter 是市场上用于测试 Web 和移动应用程序的强大工具。 它非常易于使用并且不需要太多编程技能,除非在 JMeter 中编写自己的采样器。 将在接下来的系列文章中详细介绍每个组件,敬请期待!

上一篇:前端单元测试之Karma环境搭建


下一篇:《R语言数据分析》——第2章 从Web获取数据 2.1 从Internet导入数据集