下载地址:http://jmeter.apache.org/download_jmeter.cgijava
目前最新版为2.9,其他文件如源代码等也可从以下官网下载:web
http://jmeter.apache.org/download_jmeter.cgiapache
安装Jmeter以前须要先配置Java环境,咱们下载的是jmeter2.9,因此java版本最好是选用java6之后的版本。windows
安装JDk1.6的步骤以下:(windows环境,Linux相似)浏览器
点击下载的JDK文件-dk-6u18-windows-i586.exe,点击下一步直至安装完成,而后开始配置环境:tomcat
点击个人电脑----属性----高级----环境变量----在系统变量中----点击新建,服务器
在变量名中输入:JAVA_HOME函数
变量值中输入:C:\Program Files (x86)\Java\jdk1.6.0_18工具
再次点击新建:性能
在变量名中输入:CLASSPATH,
变量值中输入:.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;
而后再系统变量中找到Path,点击编辑,在变量值中加上:
%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;(若是前面没有“;”须要加上)
配置完成以后,点击肯定保存,而后cmd打开命令窗口输入:java或者javac,出现大串字符串表示配置成功。
也能够输入:java -version 查看java版原本查看是否配置成功。
OK,JDK安装成功以后,就能够下一步安装Jmeter了。
解压apache-jmeter-2.9.zip文件至目录,个人是D:\Program Files目录。
点击个人电脑----属性----高级----环境变量----在系统变量中----点击新建,
变量名输入:JMETER_HOME
变量值输入:D:\Program Files\apache-jmeter-2.9
而后编辑CLASSPATH变量,加上%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar;而后肯定便可
操做完上面的步骤,咱们就能够点击Jmeter中bin目录下面的jmeter.bat文件便可打开Jmeter了。
注意:打开的时候会有两个窗口,Jmeter的命令窗口和Jmeter的图形操做界面,不能够关闭命令窗口。
界面以下图所示:
【Ubuntu 环境下安装】
以JMeter2.9为例,下载地址:http://jmeter.apache.org/download_jmeter.cgi,选择binaries下2.9版本。
解压完成后,添加环境变量:
vi /etc/profile
添加下述两行:
export JMETER="/usr/local/jmeter/apache-jmeter-2.9"
export CLASSPATH="$JMETER/lib/ext/ApacheJMeter_core.jar:$JMETER/lib/jorphan.jar:$JMETER/lib/logkit-2.0.jar:$CLASSPATH"
完成添加后下述命令使配置生效:
source /etc/profile
录制Jmeter脚本有两种方法,一种是设置代理;一种则是利用badboy软件,badboy软件支持导出jmx脚本。
这里咱们介绍第二种方法,利用badboy录制脚本,而后导出Jmeter须要的jmx文件。
首先,在地址栏中输入要录制脚本的地址,而后点击绿色按钮便可开始录制(工具栏中的红色按钮也能够点击进行录制),点击红色圆形按钮旁边的正方形黑色按钮结束脚本录制(若是使用过loadrunner,那么步骤是同样的),在内嵌的浏览器上面操做你须要测试的动做便可,它会本身记录你的相关行为动做。
而后点击黑色按钮录制完成以后,咱们能够导出jmx文件:
保存为“登陆开发者.jmx”。
用Jmeter打开咱们上面保存的文件。
打开以后如图所示:
在测试计划里面选择添加既能够看到线程组。
如上图:
名称:能够随意取,咱们保持建立是自动分配的名称
注释:随意
在取样器错误后要执行的动做:咱们选择继续,错误以后依然继续执行
线程数:通常咱们用来表示多少个用户,即咱们测试时的用户数量
Ramp-up Period(in Seconds):表示每一个用户启动的延迟时间,上述我设为1秒,表示系统将在1秒结束前启动我设置的1000个用户,若是设置为1000秒,那么系统将会在1000秒结束前启动这1000个用户,开始用户的延迟为1秒, 若是我设置为0秒,则表示当即启动全部用户。
循环次数:若是你要限定循环次数为10次的话,能够取消永远的那个勾,而后在后面的文本框里面填写10;在这里咱们勾上永远,表示若是不中止或者限定时间将会一直执行下去, 是为了方便调度器的调用。
调度器的配置:咱们勾选调度器时,将会出现这个面板
启动时间:表示咱们脚本开始启动的时间,当你不想当即启动脚本测试,可是启动脚本的时间不会再电脑旁的时候,你能够设定一个启动的时间,而后再运行那里点击启动,系统将不会当即运行,而是会等到你填写的时间才开始运行。
结束时间:与启动时间对应,表示脚本结束运行的时间。
持续时间:表示脚本持续运行的时间,以秒为单位,好比若是你要让用户持续不断登陆1个小时,你能够在文本框中填写3600。若是在1小时之内,结束时间已经到达,它将会覆盖结束时间,继续执行。
启动延迟:表示脚本延迟启动的时间,在点击启动后,若是启动时间已经到达,可是尚未到启动延迟的时间,那么,启动延迟将会覆盖启动时间,等到启动延迟的时间到达后,再运行系统。
注意:若是咱们须要用到调度器来设定持续时间,若是线程数不够多到持续时间结束,咱们就必须将循环次数勾选为永远,特别地,若是线程组里面有其余的循环,咱们也需将该循环次数勾选为永远(如我上面录制的脚本中的Step1也是一个循环,须要将永远勾选),不然,按我如上配置,将永远去掉勾选,文本里填1,那么不管你将持续时间启动时间结束时间等设置多少,系统运行1000次后,将会中止再也不运行。
关于HTTP请求,咱们录制的脚本里面就有,这里就介绍一些经常使用的属性。
如图所示:
点击HTTP请求,将会出现以下界面:
其中:
名称:能够随意取,咱们能够根据录制脚本的路径来命名
注释:能够对该界面作一个简单介绍
服务器名称或IP:即咱们的服务器或者IP的地址,我由于是在本机上的项目,故填写localhost,能够填写127.0.0.1。
端口号:我用的是tomcat,本身设置的端口号为8086(tomcat默认为8080)
后面的超时定义能够不用填写。
Implementation:这里咱们录制时默认填写为JAVA
协议填写为:http
方法为:GET
Content encoding:编码能够不用填写
路径:即页面的路径;下面的重定向等选择能够根据须要勾选,这里咱们保持录制不修改。
Parameters参数:即跟着路径一块儿发送的参数及文件
下面的代理服务器等能够忽略,按须要填写。
以下面图,咱们为请求发送的参数来参数化。
上述的例子为登陆的用例,登陆有两个参数:EMAIL和DEVELOPER_PASSWORD,在实际测试中,当咱们须要用到不一样的用户来登陆的时候,咱们就能够用到参数化。
1)、咱们新建一个文件,这里我新建的是一个txt文件,命名为c.txt,里面的内容为
web@qq.com,111111
col@qq.com,111111
2)、在jmeter中的【选项】中选择【函数助手对话框】,将会弹出以下对话框:
其中:
CSV file to get values from | *alias:要读取的文件路径,为绝对路径
CSV文件列号| next| *alias:从第几列开始读取,注意第一列是0
如上图所示,咱们读取的是c.txt里面的第一列用户名(若是要读取第二列的密码,只需将0改为1便可,日后类推),点击【生成】按钮便可生成函数,咱们使用时即拷贝生成的函数字符串:${__CSVRead(E:\c.txt,0)}。
其余函数后面介绍。
在web测试中,有的时候,即便咱们测试返回的response code为200,也不能保证该测试是正确的,这时候,咱们能够用到响应断言,经过对比响应的内容来判断返回的页面是不是咱们肯定要返回的页面。
选择咱们要判断的页面,点击添加断言----响应断言,将会出现以下图:
名称:随意,这里咱们不作改动
注释:随意
Apply to:这里咱们选择默认值
要测试的响应字段:这里咱们选择响应的文本,即返回的页面信息
模式匹配规则:这里咱们选择包括,即响应的文本是否包括咱们验证的信息
要测试的模式:开发者名称,即咱们须要验证,开发者名称是否在响应文本中存在,也能够添加更多的字段来验证。
其余还有文件大小和响应时间等的断言,后面介绍。
咱们作性能测试的时候,常常须要各类数据来验证咱们的测试结果,Jmeter里面也提供了相关的功能,这里主要说一下Aggregate Report聚合报告。
点击添加---监听器,选择:查看结果树,和聚合报告,若是须要看到断言信息也能够选择断言结果,将设置的一切保存以后,而后点击启动,系统将会运行,将结果在监听器中表现出来。
如图所示:成功的为绿色,失败则显示为红色。若是测试的结果太多,你只须要看到错误的页面,则勾选【仅日志错误】
其中:
Label:标签,即咱们上面的请求名称
#Samples:本次场景中一共发出了多少个请求
Average:平均响应时间
Median:中位数,也就是50%的用户的响应时间
90%Line:表示90%的用户的响应时间,若是最小值和最大值相差很大的话,咱们通常选择这个做为最终测试结果
Min:最小响应时间
Max:最大响应时间
Error%:出错率,本次测试中出现错误的请求的数量/请求的总数
Throughput:吞吐量
KB/sec:每秒从服务器端接受到的数据量
不少时候,咱们测试性能都须要查看内存和CPU等信息来判断系统瓶颈,关于CPU和内存的监控,Jmeter并无很好的支持,不少时候,咱们都只能经过系统的资源监控器来观察,一闪而过不会记录下来,很不方便。幸亏google开发了一款专门监控的Jmeter插件,弥补了Jmeter这方面的不足,下面就来介绍一些这款插件——JMeterPlugins,目前我用的是0.5.6版本。
地址:http://code.google.com/p/jmeter-plugins/downloads/list,选择须要的版本,下载
将下载的文件解压,获得以下目录:
将JMeterPlugins.jar包复制到Jmeter的lib目录下面的ext目录下面,从新启动Jmeter,咱们点击添加就能够看到出现了不少的jp@gc-开头的文件.
这里监控内存咱们使用的是:jp@gc - PerfMon Metrics Collectot
在使用以前,咱们须要运行/serverAgent/startAgent.bat这个文件,咱们须要将serverAgent目录及下面的文件复制到咱们测试的服务器上,而后点击打开(我这里是本机,直接在本机上面打开这个应用系统便可),它的默认端口为4444。
一切准备好后,点击启动,便可获得以下图:
你就能够获得系统运行时,你所须要的经常使用的性能值了。
最近逛论坛的时候,发现了一个比较好的监控内存CPU等的小工具,本着开源小工具多多益善的原则,记录一下。
打开这个小工具的步骤很简单,若是你已经配置好了Jmeter运行的环境,那么你也就不用去作其余的配置,直接 点击:开始——》运行——》输入cmd——》而后在出现的命令行界面输入“jconsole”便可弹出一个【java监视和管理控制台】,
将会弹出以下界面:
这里咱们选择本地进程,并点击一下sun.tools.jconsole.JConsole这一行,而后点击链接,就能够查看咱们的内存和CPU的使用状况了。
固然,咱们要获得服务器的内存使用等信息,也能够选择 本地进程下面的远程进程,在文本框中输入咱们须要测试的服务器的IP地址:端口,而后在下面输入用户名和密码,点击链接,看看会出现什么状况。