压力测试工具-JMeter

1. 什么是JMeter

  • Apache JMeter是Apache组织开发的基于Java的压力测试工具,用于对软件做压力测试。它最初被设计用于Web应用测试,但后来扩展到其他测试领域。(Apache JMeter是100%纯JAVA桌面应用程序)
  • Apache JMeter可以用于对静态和动态资源(如:文件、Servlet、Perl脚本、java对象、数据库和查询、FTP服务器等待)进行性能测试。
  • JMeter可以用于对服务器、网络或对象模拟巨大的负载、通过不同压力类别,测试它们的强度和分析整体性能、并可以使用它做性能的图形分析。
  • JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序是否返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
  • JMeter是一个开源的工具,在使用的过程中,如果需要使用更多功能,就需要安装相应的插件。

总结:JMeter做什么

  • 接口测试

  • 性能测试:程序的算法

  • 压力测试:外在负载

  • 数据库测试

  • java程序测试

  • FTP服务器测试

    (前面四个用的比较多)

2.为什么使用JMeter

JMeter优势如下:

  • 开源:JMeter完全免费,允许开发者使用源代码进行二次开发。
  • 友好的GUI:JMeter使用起来非常容易,不需要花时间熟悉。
  • 平台独立:JMeter是100%纯Java桌面应用程序,所以可以多平台运行。
  • 完全多线程框架:JMeter允许通过多个线程并发取样和通知单独的线程组对不同的功能同时取样。
  • 可视化的测试结果:测试结果可以用不同的报表显示,如:图表、表格、树和日志文件
  • 安装方便:你不用安装,只需复制并打开*.bat文件运行JMeter。(轻量级)
  • 高度扩展:你可以编写你自己的测试,JMeter还支持可视化插件,允许您的扩展您的测试。
  • 多测试策略:JMeter支持多个测试策略,如:负载测试、分布式测试和功能测试。
  • 仿真:JMeter可以模拟多用户并发线程,创建一个沉重的负担对web应用程序,创建一个沉重的负担对web应用程序测试下。
  • 支持多协议:JMeter不仅测试支持web应用程序,还可以评估数据库服务器的性能。JMeter基本支持所有的协议(如:HTTP、JDBC、LDAP、SOAP、JMS和FTP)。
  • 录制和回放:录制用户在浏览器和web应用程序的记录、使用JMeter进行模拟。
  • 脚本测试:JMeter可以集成Bean Shell和Selenium自动化测试。

3.JMeter的缺点:

  • 使用JMeter无法验证JS程序,也无法验证页面UI,所有必须要和Selenium配合来完成Web2.0应用的测试。(配合的意思就是在验证页面或者JS程序的时候,使用Selenium。并不是结合的意思,是单独使用。)
  • JMeter不支持IP欺骗
  • JMeter的测试脚本和结果基本都是本地管理,不支持版本控制管理。

4.JMeter对比loadrunner

JMeter的架构跟loadrunner原理一样,都是通过中间代理,监控&收集并发客户端发现的指令,把他们生成脚本,再发送到应服务器,再监控服务器反馈的结果的一个过程。

  • JMeter安装简单,LoadRunner安装麻烦。
  • JMeter组件小,LoadRunner占用空间比较大。
  • JMeter不支持IP欺骗,LoadRunner支持。
  • 脚本录制功能两者都支持。
  • JMeter支持报表,但分析能力不足。LoadRunner支持报表,数据完成,界面漂亮。
  • JMeter是开源的(免费),LoadRunner是商业软件,需要收费。
  • JMeter易用性更强,JMeter的脚本修改,主要是对JMeter中各个部件的熟悉程度,已经相关的一些协议的掌握情况,而不依赖于编程。
  • LoadRunner除了复杂的场景设置外,还需要掌握函数和修改脚本(如果单单只会录制脚本,并不叫性能测试哦~)。

总结如下表:


​ JMeter LoadRunner


​ 安装 简单,下载解压即可 复杂,安装包大于1GB,依赖 比较强,安装时间长(大约1 小时)


录制/回放模式 支持 支持


​ 测试协议 偏少,用户可自行扩展 较多,不可扩展


分布式大规模 支持 支持、

​ 压力测试


IP欺骗功能 不支持 支持


​ 图形报表 支持 支持


测试逻辑控制 支持 支持


监控服务器资源 支持 支持


功能测试 支持 支持


本篇文章来源于:博主繁花似锦