一、工具描述
apache jmeter是100%的java桌面应用程序,它被设计用来加载被测试软件功能特性、度量被测试软件的性能。设计jmeter的初衷是测试web应用, 后来又扩充了其它的功能。jmeter可以完成针对静态资源和动态资源(servlets, perl脚本, java对象, 数据查询s, ftp服务等)的性能测试。 jmeter可以模拟大量的服务器负载、网络负载、软件对象负载,通过不同的加载类型全面测试软件的性能。并且jmeter提供图形化的性能分析。
二、使用环境
JMeter可以运行在solaris, linux, windows (98, nt, 2000,2003). jdk1.4以上。本文章主要介绍使用JMeter测试windows环境的web server 和DB server的环境搭建步骤,以及使用Jmeter进行压力测试的入门。
三、软件下载
JDK1.5 http://java.sun.com/javase/downloads/index.jsp
Apache tomcat 5.5 http://tomcat.apache.org/download-55.cgi
jakarta-jmeter-2.2 http://jakarta.apache.org/site/downloads/downloads_jmeter.cgi
sqljdbc_1.1.1501.101_enu.exe http://www.microsoft.com/downloads/details.aspx?FamilyId=6D483869-816A-44CB-9787-A866235EFC7C&displaylang=en
四、JDK安装
下载jdk-1_5_0_09-nb-5_0-win-ml.exe,这接点击默认安装,一般安装至C:\Program Files\Java目录下。
桌面上选择“我的电脑”(右键),高级, 环境变量, 在“系统变量”--->“新建”, 在变量名中输入:CLASSPATH,变量值中输入:C:\Program Files\Java\jdk1.5.0_09\lib\dt.JAR; C:\Program Files\Java\jdk1.5.0_09\lib\TOOLS.JAR; C:\Program Files\Java\jdk1.5.0_09\BIN;再按“新建”,在变量名中输入:JAVA_HOME,变量中输入:C:\Program Files\Java\jdk1.5.0_09;修改PATH变量,添加%JAVA_HOME%/bin;然后确定即可;
五、Apache tomcat安装
下载apache-tomcat-5.5.20.exe直接点击按照默认路径安装,一般安装在C:\Program Files\Apache Software Foundation\Tomcat 5.5路径下即可。
六、Jmeter安装
解压 jakarta-jmeter-2.2.zip文件至c盘,本文解压至C:\jakarta-jmeter-2.2目录下。
桌面上选择“我的电 脑”(右键),高级, 环境变量, 在“系统变量”--->“新建”, 在变量名中输入:JMETER_HOME,变量值中输入:C:\jakarta-jmeter-2.2 ,再修改CLASSPATH变量,变量值中添加%JMETER_HOME%\lib\ext \ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-1.2.jar; 然后确定即可。
七、安装SQLJDBC驱动
因为需要测试ms sql 2005,所以需要安装SQLJDBC驱动,可以直接下载sqljdbc_1.1.1501.101_enu.exe,点击可以直接解压到 C:\Program Files目录下,然后修改添加CLASSPATH =C:\Program Files\Microsoft SQL Server 2005 JDBC Driver\sqljdbc_1.0\enu\sqljdbc.jar,然后确定即可。
一般还需 要将目录下 的C:\Program Files\Microsoft SQL Server 2005 JDBC Driver\sqljdbc_1.1\enu\auth\x86\sqljdbc_auth.dll拷贝到C:\WINDOWS\system32 ,否则会提示找不到sqljdbc_auth.dll。
另使用JDBC连接MS SQL 2005数据库,需要在数据库安装后设置ICP/IP协议启动,具体如下:
(1)打开SQL Server Configuration Manager;
(2)转到SQL Server 2005 Network Configuration->Protocols for SQLEXPRESS;
(3)将TCP/IP设置为Enabled(启用);
(4)双击TCP/IP项,转到IP Addresses页
(5)IP All中设置TCP Port为1433;
(6)重新启动服务;
如何正确使用 JDBC 驱动程序,可以参见:http://msdn2.microsoft.com/zh-cn/library/ms378526.aspx
至 此,Jmeter测试环境基本安装完成,该环境可以测试web server和DB server(MS SQL2005)。
八、分布式Web server压力测试设置
作为一个纯 java 的gui应用,jmeter 对于cpu和内存的消耗还是很惊人的,所以当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至还会引起java内存溢 出的错误。不过,jmeter 也可以像 loadrunner 一样通过使用多台机器运行所谓的 agent 来分担 load generator 自身的压力,并借此来获取更大的并发用户数。根据 jmeter官方文档的署名,你需要自己完成这个配置,不过不用担心,这将非常简单 ^_^
1. 在所有期望运行 jmeter 作为 load generator 的机器上安装 jmeter,并确定其中一台机器作为 controller,其他的机器作为 agent。然后运行所有 agent 机器上的jmeter-server.bat文件——假定我们使用两台机器 192.168.0.1 和 192.168.0.2 作为 agent;
2. 在controller 机器的 jmeter 安装目录下找到 bin 目录,再找到 jmeter.properties 这个文件,使用记事本或者其他文字编辑工具打开它;
3. 在打开的文件中查找“remote_hosts=”这个字符串,你可以找到这样一行“remote_hosts=127.0.0.1”。其中的 127.0..0.1 表示运行 jmeter agent 的机器,这里需要修改为“remote_hosts=192.168.0.1:1099,192.168.0.2:1099”——其中的 1099为 jmeter 的 controller 和 agent 之间进行通讯的默认 rmi 端口号;
4. 保存文件,并重新启动 controller 机器上的 jmeter.bat,并进入 run -> remote start 菜单项。
在具体实施过程中,需 要注意设置好PATH系统环境变量,否则会出现提示找不到rmiregistry.exe,这是RMI注册程序,在JDK的bin目录下。还要注意保证 1099端口没有被禁用。
可以参见:http://www.informit.com/guides/content.asp?g=java&seqNum=274&rl=1
九、JDBC Connection Configuration
在测试DB server性能的时候,正确设置数据库URL和JDBC驱动类,一般如下设置:
Database URL : jdbc:sqlserver://192.166.6.37:1433;databaseName=jia_online;
JDBC Drive class:com.microsoft.sqlserver.jdbc.SQLServerDriver
Username和 password是打开数据库的用户名和密码。
注意:请正确安装SQLJDBC驱动。