简介:
Apache Software Foundation 的 Stefano Mazzocchi
是JMeter的最初开发人员。他编写它主要用于测试Apache JServ的性能(一个后来被Apache
Tomcat项目替代的项目)。我们重新设计了JMeter,增强了它的GUI和添加了功能测试支持。
Apache JMeter 是100%的Java桌面应用程序。用于对软件做压力测试(例如Web应用)。
它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库, FTP 服务器, 等等。JMeter
可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能。
另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
特点:
在设计阶段,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: 每秒从服务器端接收到的数据量
远景:
我们希望看到随着开发人员利用插件架构的优势,JMeter的能力能够迅速扩展。将来开发的主要目标是使得JMeter尽可能地变成一个有用的衰退测试工具,而不损失JMeter地压力测试能力。
介绍一个简单的Http请求性能测试:
1、添加线程组。
选中测试计划,右键单击选择添加菜单,然后再选择线程组打开线程组配置。
首先给这个线程组起一个有意义的名字,在名字域里,输入“测试”.
然后,在线程数里输入5,下一个输入域,Ramp_Up
Period,保持不变。这个值是告诉JMeter在开始各个线程之间延迟多长时间。例如,如果你输入5,JMeter将会在5秒前完成该线程里的所有操
作。因此,如果我们有5个线程和5秒Ramp_Up Period,延迟在开始线程之间会是1
秒(5个线程/5秒=1秒)。如果你设置此值为0,JMeter则会立刻开始此线程的所有操作。
最后,清除循环次数的复选项“永远”,然后输入2。这个值是告诉JMeter你的测试重复多少次。如果你输入1,那么JMeter只会运行一次你的测试。要不停的运行你的测试计划,选中“永远”复选框。
在大多应用里,你必须手工接受你在控制面板里做的改动,但是,在JMeter里,控制面板能自动地接受你的变动如同你改动它们一样。如果你更改元件的名字,树将在你离开控制面板后被更新,以新文本显示(例如,当选择其它树元件)。
2、给新添加的测试线程组添加第一个HTTP请求。
选择上面新建的线程组,右键 添加->取样器-> HTTP请求,然后填写其属性。
说明:
名称: HTTP 默认请求值 该元素的名称
服务器名称或IP:l测试服务器的IP或者名字
端口号:80 服务器提供服务的端口号,服务器是Tomcat,所以端口号是80
协议: http 发送测试请求时使用的协议,通常都用HTTP协议
方法:http请求中使用的方法,如get post等。你要测试服务器对http请求的相应,你首先需要确定该http请求中使用的是什么方法,确定方法:查看网页源代码或者jsp,查找“method”,代码中method后面的值就是http请求中使用到的方法
路径: 此处填写你要测试的页面的路径,不包括服务器地址
同请求一起发送的参数:因为我测试的是登录,故添加了四个同请求一起发送的参数。要确定同请求一起发送的参数,你也需要查看网页源代码或者jsp,查找“input”,将该标签中的name值作为参数名,而将相应的value作为参数值。
3、添加监视。
选择HTTP请求元件,然后添加一个图形结果监视器。 然后,你需要指定一个目录和一个输出的文件名。你可以输入到文件名域里,也可以选择“浏览”按钮来浏览目录并输入文件名。