1.JMeter介绍 到JMeter的网站http://jakarta.apache.org/site/downloads/downloads_jmeter.cgi
下载JMeter的最新版本,将zip文件解压缩到D:/JMeter,运行D:/JMeter/bin下的jmeter.bat即可。 JMeter,一个100%的纯Java桌面应用,它是Apache组织的开放源代码项目,它是功能和性能测试的工具。JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、Java对象、数据库和查询、ftp服务器或者其他资源)。原先Jmemer是为Web/HTTP测试而设计的,但是它已经扩展以支持各种各样的测试模块。它和用于HTTP和SQL数据库(使用JDBC)的模块一起运送。它可以用来测试静止资料库或者活动资料库中的服务器的运行情况,可以用来模拟对服务器或者网络系统加以重负荷以测试它的抵抗力,或者用来分析不同负荷类型下的所有运行情况。它也提供了一个可替换的界面用来定制数据显示,测试同步及测试的创建和执行。 Jmeter的下载地址:http://jakarta.apache.org/jmeter/usermanual/index.html JMeter 的特性: a) 能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)。
b) 完全的可移植性和100% 纯Java。
c) 完全 Swing 和轻量组件支持(预编译的JAR使用 javax.swing.*)包。
d) 完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样。
e) 精心的GUI设计允许快速操作和更精确的计时。
f) 缓存和离线分析/回放测试结果。
g) 高可扩展性:
h) 可链接的取样器允许无限制的测试能力。
i) 各种负载统计表和可链接的计时器可供选择。
j) 数据分析和可视化插件提供了很好的可扩展性以及 以及个性化。
k) 具有提供动态输入到测试的功能(包括Javascrīpt)。
l) 支持脚本变成的取样器(在1.9.2及以上版本支持BeanShell)。
2.脚本录制 在测试计划中添加线程组,在线程组中添加逻辑控制器-录制控制器。 在工作台中添加非测试元件-HTTP代理服务器。
端口:即代理服务器的监听端口,我们设为8080。
目标控制器选择:测试计划>线程组;
分组选择:每个组放入一个新的控制器。 在HTTP代理服务器中添加定时器-高斯随机定时器(用于告知Jmeter来在其生成的HTTP请求中自动的增加一个定时器)。定时器将会使相应的的取样器被延迟。 延时的规则是,在上一个访问请求被响应并延时了指定的时间后,下一个被定时器影响的取样访问请求才会被发送出去。 如果在代理服务器元件里使用了高斯随机定时器,就应该在其中的固定延迟偏移(Constant Delay Offset)设置项里添上${T}(用于自动引用纪录的延迟时间)。 代理服务器配置好以后,点击启动,代理服务器就会开始记录所接受的HTTP 访问请求。
打开浏览器,打开Internet选项,将局域网(LAN)设置中的代理服务器设为:localhost,端口为在代理服务器中设的端口:8080。 在浏览器地址栏中输入地址并进行相关的操作进行录制,录制完成后, 停止HTTP 代理服务器; 在录制控制器元件上单击右键将记录的元件保存为一个文件用于以后重用,另外,不要忘了恢复浏览器的代理服务器设置。 脚本录制完毕后,就可以运行JMeter来进行我们的测试了。
3.运行JMeter进行测试
打开JMeter会有一个默认的测试计划,点击文件-打开,选中录制的脚本文件如:WebXSample_addUser.jmx,打开脚本进行测试。
在线程组上添加监听器-聚合报告(用于分析测试结果)后,点击运行-启动,开始测试,测试完毕后在聚合报告中就可以看到测试结果。一个简单的测试计划就完成了。 聚合报告详解
Label:每个 JMeter 的 element (例如 HTTP Request )都有一个 Name 属性,这里显示的就是 Name 属性的值
#Samples:表示你这次测试中一共发出了多少个请求,如果测试计划模拟10个用户,每个用户迭代10次,这里就会显示100
Average:平均响应时间 — 默认情况下是单个 Request 的平均响应时间,当使用了事务控制器时,也可以以事务为单位显示平均响应时间
Median:中位数,也就是 50 %用户的响应时间
90% Line: 90 %用户的响应时间
Min:最小响应时间
Max:最大响应时间
Error%:错误率,本次测试中出现错误的请求的数量 / 请求的总数
Throughput:吞吐量 —— 默认情况下表示每秒完成的请求数( Request per Second )
KB/Sec:每秒从服务器端接收到的数据量
|