什么是JMeter,为什么要用它呢?
Apache JMeter是纯Java开源软件,最初由Apache软件基金会的Stefano Mazzocchi开发,旨在加载测试功能行为和测量性能。可以使用JME性能测试,即针对重负载、多用户和并发流量测试Web应用程序。目前主要用于功能测试、数据库服务器测试等。
为什么是JMeter
是否测试过Web服务器以了解其工作效率?一台Web服务器可以处理多少并发用户?
假设有一天,老板要求为100个用户做www.baidu.com的性能测试。怎么做?
安排100个人同时使用PC和互联网访问baidu.com是不可行的,当测试10000个用户时,想想基础设施需求(对于百度这样的网站来说,这是一个很小的数字)。因此,需要一个像JMeter这样的软件工具来模拟真实的用户行为,并对站点进行性能/负载测试。
JMeter优势
JMeter的优势如下图所示
- 开源许可(Open source license): JMeter是完全免费的,允许开发者使用源代码进行开发
- 友好的GUI(Friendly GUI): JMeter非常容易使用,并且不需要花费时间来熟悉它
- 平台无关性(Platform independent): JMeter是100%纯Java桌面应用程序。因此它可以在多个平台上运行
- 完整的多线程框架(Full multi-threading frmework): JMeter允许通过单独的线程组对不同函数进行并发和同时采样
- 测试结果可视化(): 测试结果可以以图表、表格、树、日志文件等不同格式显示
- 易于安装: 只需复制并运行*.bat文件即可运行JMeter。无需安装。
- 高度可扩展: 可以编写自己的测试。JMeter还支持可视化插件,允许扩展测试
- 多种测试策略: JMeter支持负载测试、分布式测试、功能测试等多种测试策略。
- 模拟: JMeter可以模拟具有并发线程的多个用户,对测试中的Web应用程序造成较重的负载
- 支持多协议: JMeter不仅支持web应用测试,还支持数据库服务器性能评估。JMeter支持所有基本协议,如HTTP、JDBC、LDAP、SOAP、JMS和FTP
- 记录和回放 -记录浏览器上的用户活动,并使用JMeter在Web应用程序中模拟它们
- 脚本测试: Jeter可以与Bean Shell&Selenium集成,实现自动化测试。
JMeter是如何工作的?
JMeter的基本工作流程如下图所示
JMeter模拟一组用户向目标服务器发送求,并通过图形化图表返回目标服务器的统计信息
JMeter已完成的工作流,如下图所示
Jeter版本历史记录
版本 | 描述 |
---|---|
1 | 首次正式发布 |
2.13 | Java 6+ |
3 | Java 7+ |
3.1 | Java 7+ |
3.2 | Java 8+ |
3.3 | Java 8 |
4 | Java 8/9 |