然后ok就连接上了,连接成功后如下:
这里是选择了标记当前值后的图像。 9.4 监控tomcat Jdk:jdk1.6 Tomcat:tomcat5.5 Os: debian6
JProfile: jprofiler_linux_6_2_3 9.4.1 配置:
服务端安装过程不说了。 配置: 1>
在/etc/profile增加如下内容:
JPROFILER_HOME=/usr/local/jprofiler6/bin/linux-x86 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$JPROFILER_HOME Export JPROFILER_HOME LD_LIBRARY_PATH 2>
在tomcat启动脚本/usr/local/tomcat/bin/catalina.sh里增加如下内容: CATALINA_OPTS=\-Xbootclasspath/a:/usr/local/jprofiler6/bin/agent.jar\
启动tomcat后jprofile的8849端口就打开了。 说明:
在启动tomcat时,8849端口先起来,然后等待客户端连接jprofile,只有连接上后,tomcat才能成功启动,否则就一直等待,除非人为干预。
10. Jmeter
10.1 简介
Apache JMeter是100%纯java桌面应用程序,被设计用来测试客户端/服务器结构的软件(例如web应用程序)。它可以用来测试包括基于静态和动态资源程序的性能,例如静态文件,Java Servlets,Java 对象,数据库,FTP 服务器等等。JMeter可以用来在一个服务器、网络或者对象上模拟重负载来测试它的强度或者分析在不同的负载类型下的全面性能。另外,JMeter能够通过让你们用断言创建测试脚本来验证我们的应用程序是否返回了我们期望的结果,从而帮助我们回归测试我们的程序。为了最大的灵活性,JMeter允许我们使用正则表达式创建断言。
10.2 安装 10.2.1 安装说明
Jmeter 是java 写的,所以要jmeter运行必须要安装配置jdk,如何安装配置这里不说了。 系统:debian 6 linux x86 Jdk:1.6
10.2.2 安装 从官网下载jmeter: Wget
http://labs.renren.com/apache-mirror//jakarta/jmeter/binaries/jakarta-jmeter-2.5.1.tgz
解压就可以用了,安装就这么简单。不过测试中需要jdbc ,beanshell啥的需要把相应的包放到jmeter/lib目录下。
10.3 Jmeter 命令参数选项说明
调用JMeter的 \命令将打印所有命令选项的一个列表。列表如下: -h, --help 打印使用信息并退出 -v, --version 打印版本信息并推出
-p, --propfile {argument} 使用的JMeter属性文件 -q, --addprop {argument} 附加的属性文件
-t, --testfile {argument} 运行的JMeter测试文件(.jmx) -l, --logfile {argument} 日志取样文件 -n, --nongui 非用户界面运行JMeter -s, --server 运行JMeter服务器
-H, --proxyHost {argument} 设置JMeter使用的代理服务器 -P, --proxyPort {argument} 设置JMeter使用的代理服务器端口 -u, --username {argument} 设置JMeter使用的代理服务器用户名 -a, --password {argument} 设置JMeter使用的代理服务器密码 -J, --jmeterproperty {argument}={value} 定义附加的 JMeter 属性 -D, --systemproperty {argument}={value} 定义附加的 System 属性 -S, --systemPropertyFile {filename} 一个属性文件被做为系统属性添加 -L, --loglevel {argument}={value} 定义日志等级: [category=]level 例如 jorphan=INFO or jmeter.util=DEBUG -r, --runremote从非用户界面模式启动远程服务器 -d, --homedir {argument} 使用的JMeter目录 10.4 Jmeter 运行 10.4.1 运行脚本: 1> windows下:
jmeter.bat :单机模式
jmeter-server.bat:服务器模式 2> linux下:
jmeter.sh :单机模式
jmeter-server.sh 服务器模式 以上脚本均在bin目录下。 10.4.2 使用代理服务器 使用代理服务器
如果你从防火墙/代理服务器后测试,你需要提供给JMeter防火墙/代理服务器的主机名和端口号。这样做,从命令行使用以下参数运行jmeter.bat/jmeter文件: -H [代理服务器主机名或者ip地址]
-P [代理服务器端口]
-N [非代理主机] (例如: *.apache.org|localhost) -u [代理证书用户名- 如果需要] -a [代理证书密码 - 如果需要]
例如 : jmeter -H my.proxy.server -P 8000 -u username -a password -N localhost 或者, 你使用 --proxyHost, --proxyPort, --username, and –password 说明:
JMeter也有自己的内建HTTP代理服务器,来记录HTTP(不是 HTTPS)浏览器会话。这是和上面的代理设置描述不混淆的,它是在JMeter发出HTTP或者HTTPS请求时使用的。 10.4.3 命令行模式下运行
为了不相互影响测试, 你可以选择运行没有用户界面的JMeter。这样做,使用下列命令选项: -n 这是指定JMeter在非用户界面模式运行 -t [包含测试计划的JMX文件的名字] -l [记录取样结果的JTL文件的名字]
-r 运行在jmeter.properties文件里所有的远程服务器 (或者通过在命令行覆盖属性指定远程服务器)
这个脚本也允许我们指定可选的防火墙/代理服务器信息: -H [代理服务器主机名或者ip地址] -P [代理服务器端口]
例如命令模式单机模式使用代理服务器的运行命令:
jmeter -n -t test_script.jmx -l log.jtl -H my.proxy.server -P 8000 –u username –a password
10.4.4 JMeter Classpath
JMeter 自动从下列目录中的jar文件发现类。 ? ?
JMETER_HOME/lib - 用来放使用的jar文件 JMETER_HOME/lib/ext - 用来放JMeter组件和扩展
如果你开发新的JMeter组件,你可以压缩它们成jar包并拷贝到JMeter的/lib/ext目录。JMeter将会自动发现在这里的任何jar文件中的JMeter组件。 支持的jar文件(类库)应该放在lib目录.
如果你不想把扩展jar包放到lib/ext目录,可以在jmeter.properties中定义search_paths属性。不要使用lib/ext给那些公用的jar包;它仅仅是存放JMeter组件。
其他jar包 (例如 JDBC, 和任何JMeter代码需要支持的类库)应该被代替放在lib目录 - 而不是lib/ext目录。
注意:JMeter 会发现.jar文件,而不是.zip文件。
你可以在$JAVA_HOME/jre/lib/ext安装有用的jar文件,或者(自从 2.1.1版本)你可以在jmeter.properties中设置user.classpath属性。
注意设置CLASSPATH 环境变量将不起作用。这是因为JMeter 使用\--jar\启动,并且java命令无记录忽略CLASSPATH 变量,并且当使用-jar选项时-classpath/-cp 选项也被使用。[所有的java程序都是这样,不仅仅是JMeter。 10.5 Jmeter 功能组件说明
1>测试计划是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器。wxH平坦软件园
2>线程组:代表一定数量的并发用户,它可以用来模拟并发用户发送请求。实际的请求内容在
Sampler中定义,它被线程组包含。可以在“测试计 划->添加->线程组”来建立它,然后在线程组面板里有几个输入栏:线程数、Ramp-Up Period(in seconds)、循环次数,其中Ramp-Up Period(in seconds)表示在这时间内创建完所有的线程。如有8个线程,Ramp-Up = 200秒,那么线程的启动时间间隔为200/8=25秒,这样的好处是:一开始不会对服务器有太大的负载。线程组是为模拟并发负载而设计。wxH平坦软件园
3>取样器(Sampler):模拟各种请求。所有实际的测试任务都由取样器承担,存在很多种请求。如:HTTP 、ftp请求等等。wxH平坦软件园
4>监听器:负责收集测试结果,同时也被告知了结果显示的方式。功能是对取样器的请求结果显示、统计一些数据(吞吐量、KB/S??)等。wxH平坦软件园
5>断言:用于来判断请求响应的结果是否如用户所期望,是否正确。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。这个限制对于有效的测试 是非常有用的。wxH平坦软件园
6>定时器:负责定义请求(线程)之间的延迟间隔,模拟对服务器的连续请求。wxH平坦软件园 7>逻辑控制器:允许自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。wxH平坦软件园
8>配置元件维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容。wxH平坦软件园
9>前置处理器和后置处理器负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。 10.6 Badboy录制脚本 10.6.1 简介
简单的介绍一下Badboy。Badboy是一款不错的Web自动化测试工具,如果你将它用于非商业用途,或者用于商业用途但是安装Badboy 的机器数量不超过5台,你是不需要为它支付任何费用的。也许是一种推广策略,Badboy提供了将Web测试脚本直接导出生成JMeter 脚本的功能,并且这个功能非常好用,也非常简单。你可以跟着下面的试验步骤来迈出你在开源世界的第一步。 10.6.2 安装
1>通过Badboy的官方网站(http://www.badboy.com.au/)下载Badboy的最新版本,我下载的是BadboyInstaller-2.1.2_beta_2.exe;
2>安装Badboy。安装过程同一般的Windows 应用程序没有什么区别,安装完成后你可以在桌面和Windows开始菜单中看到相应的快捷方式——如果找不到,可以找一下Badboy安装目录下的Badboy.exe 文件,直接双击启动Badboy; 10.6.3 使用
1> 启动Badboy,你可以看到下面的界面。