Apache JMeter是Apache组织开发的基于Java的开源压力测试工具(个人发现也可用于接口测试)。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库, FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter可进行参数化测试,实现自动化脚本与测试数据分离,能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

       Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器,网络 或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。

       Apache jmeter一款非常优秀的开源的性能测试工具,并且可进行自定义扩展(使用 Java自定义请求或自定义验证函数等,以对JMeter进行客制化扩展)。

       JMeter的作用:
       1.能够对HTTP和FTP服务器进行压力和性能测试,也可以对任何数据库进行同样的测试(通过JDBC),也可模拟请求进行接口测试
       2.完全的可移植性和纯java
       3.完全 Swing 和轻量组件支持(预编译的JAR使用 javax.swing.*)包。
       4.完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样。
       5.精心的GUI设计允许快速操作和更精确的计时。
       6.缓存和离线分析/回放测试结果。
       7.可进行分布式测试,远程启动其他服务器的JMETER

       JMeter的高可扩展性:
       1.可链接的取样器允许无限制的测试能力。
       2.各种负载统计表和可链接的计时器可供选择。
       3.数据分析和可视化插件提供了很好的可扩展性以及个性化。
       4.具有提供动态输入到测试的功能(包括Javascript)。
       5.支持脚本变成的取样器(在1.9.2及以上版本支持BeanShell)。
       6.可通过JAVA编写扩展 jar 包,对 JMETER 进行应用扩展

       在设计阶段,JMeter能够充当HTTP PROXY(代理)来记录IE/NETSCAPE的HTTP请求,也可以记录apache等WebServer的log文件来重现HTTP流量。当这些HTTP客户端请求被记录以后,测试运行时可以方便的设置重复次数和并发度(线程数)来产生巨大的流量。JMeter还提供可视化组件以及报表工具把量服务器在不同压力下的性能展现出来。

       相比其他HTTP测试工具,JMeter最主要的特点在于扩展性强(通过JAVA 开发 jar 包进行扩展)。JMeter能够自动扫描其lib/ext子目录下.jar文件中的插件,并且将其装载到内存,让用户通过不同的菜单调用。