在本文中我们将了解什么是性能测试、为什么选择 JMeter、JMeter 与 HP LoadRunner。
什么是性能测试?
在我们继续探索 Jmeter 及其安装过程之前,我们需要了解什么是性能测试以及 JMeter 作为工具如何支持性能测试。
就像学生需要表现良好才能提升自己的水平一样。 同样,应用程序(移动或 Web 或桌面)需要表现良好,才能在竞争激烈的市场中更上一层楼。
性能测试衡量 您的应用程序在不同工作负载下的性能。 有许多参数可用于确定负载测试中的服务器是否运行良好,本文稍后将讨论这些参数。
- 举一个简单的例子。 在浏览器中输入“www.facebook.com”,它显示了 Facebook 的主页使用时间10秒。 现在假设 1000 人同时输入“www.facebook.com”并点击 Google 主页显示可能超过 10 秒 。
- 因此,在不同的工作负载(用户数量)下性能会发生变化。 这种类型的测试非常重要,因为无论您的应用程序有多么好的设计和功能,但如果它的性能很差,那么很有可能失去所有潜在的目标受众 。
通过下图我们可以清晰看到比较
性能测试主要考虑以下参数:
- 吞吐量 - 它被定义为每秒的事务数。 例:假设银行客户服务一次只能处理 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 中编写自己的采样器。 将在接下来的系列文章中详细介绍每个组件,敬请期待!