Apache JMeter是Apache组织基于Java开发的压力测试工具,用于对软件做压力测试。
JMeter最初被设计用于Web应用测试,但后来扩展到了其他测试领域,可用于测试静态和动态资源,如静态文件、Java 小服务程序、CGI脚本、Java对象、数据库和FTP服务器等等。JMeter可对服务器、网络或对象模拟巨大的负载,在不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证程序是否返回了期望结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
Apache Software Foundation的Stefano Mazzocchi是JMeter的初始开发人员。他编写它主要用于测试Apache JServ的性能(一个后来被Apache Tomcat项目替代的项目)。我们重新设计了JMeter,增强了它的GUI和添加了功能测试支持。
我们希望看到随着开发人员利用插件架构的优势,JMeter的能力能够迅速扩展。将来开发的主要目标是使得JMeter尽可能地变成一个有用的回归测试工具,而不仅是JMeter的压力测试能力。
JMeter的作用
1.能够对HTTP和FTP服务器进行压力和性能测试,也可以对任何数据库进行同样的测试(通过JDBC)。
2.完全的可移植性和100%纯java。
3.完全Swing和轻量组件支持(预编译的JAR使用javax.swing.*)包。
4.完全多线程 框架允许通过多个线程并发取样和通过单独的线程组对不同的功能同时取样。
5.精心的GUI设计允许快速操作和更精确的计时。
6.缓存和离线分析/回放测试结果。
JMeter的高可扩展性
1.可链接的取样器允许无限制的测试能力。
2.各种负载统计表和可链接的计时器可供选择。
3.数据分析和可视化插件提供了很好的可扩展性以及个性化。
4.具有提供动态输入到测试的功能(包括Javascript)。
5.支持脚本编程的取样器(在1.9.2及以上版本支持BeanShell)。
在设计阶段,JMeter能够充当HTTP PROXY(代理)来记录IE/NETSCAPE的HTTP请求,也可以记录apache等WebServer的log文件来重现HTTP流量。当这些HTTP客户端请求被记录以后,测试运行时可以方便的设置重复次数和并发度(线程数)来产生巨大的流量。JMeter还提供可视化组件以及报表工具把量服务器在不同压力下的性能展现出来。
相比其他HTTP测试工具,JMeter最主要的特点在于扩展性强。JMeter能够自动扫描其lib/ext子目录下.jar文件中的插件,并且将其装载到内存,让用户通过不同的菜单调用。
1、Label:定义的HTTP请求名称
2、Samples:表示这次测试中一共发出了多少个请求
3、Average:访问页面的平均响应时间
4、Min:访问页面的最小响应时间
5、Max:访问页面的最大响应时间
6、Error%:错误的请求的数量/请求的总数
7、Throughput:每秒完成的请求数
8、KB/Sec:每秒从服务器端接收到的数据量