??xml version="1.0" encoding="utf-8" standalone="yes"?>
3、直接用shell命oQ?code>$ sudo apt-get install sun-java6-bin sun-java6-jre sun-java6-jdk
一Q设|classpath的方?
<path id="project.classpath">
<pathelement path="${basedir}/lib/aa.jar"/> <!--1-->
<pathelement location="aa.jar"/> <!--2, ?的区别在于location可以d前\径,当然可以使用l对路径 -->
<filelist id="file" dir="${basedir}/lin"><!--3-->
<file name="a.jar"/>
<file name="d:lib/b.jar"/>
</filelist>
<fileset dir="d:/lib"><!--4-->
<include name="**/*.jar"/>
</fileset>
<!-- 手册上说了dirset也好用,但是我测试了q是不要用的-->
</path>
<javac scdir="./src" destdir="./classes">
<classpath refid="project.classpath"/>
</javac>
W?U,调用的需要设|绝对\径适合W三方jar?
W?U,则适合jar包和build.xml文g在同一目录下的情况Q但是我觉得两个文g攑֜一hw就不合理,估计是用的情况不多。这两种都是讄单个jar?
W?U,是一个文仉合适合引入不同路径的jar包,但是需要输入每个jar包的名字Q比较繁琐,适合于jar包属于不同位|,比较分散但是不多的情?
W?U,是一个文件夹Q可以采用匹配模式来引入Q这个适合在同一个文件夹下,文g名字比较多的情况?
]]>
]]>
]]>
一、安装JDK(Ubuntu)
从sun|站上直接下载JDKQhttp://java.sun.com/j2se/1.4.2/download.html 提供了两个下载:
1、RPM in self-extracting file (j2sdk-1_4_2_04-linux-i586.bin, 32.77 MB) q个是自解压的文Ӟ在linux上安装如下:
# chmod u+x ./j2sdk-1_4_2_04-linux-i586.bin
# ./j2sdk-1_4_2_04-linux-i586.bin
在按提示输入yes后,jdk被解压到./j2sdk1.4.2_04目录下。ؓ与下?中JDK安装路径一_我们q行下列操作,?usr/java下徏立安装\径,q将文g考到该\径下Q?
# mkdir /usr/java
# cp -fr ./j2sdk1.4.2_04 /usr/java
2?
RPM in self-extracting file (j2sdk-1_4_2_04-linux-i586-rpm.bin, 32.77
MB)q个也是一个自解压文gQ不q解压后的文件是j2sdk-1_4_2_04-linux-i586-rpm包,执行rpm命o装到linux上就?
以了。安装如下:
#chmod u+x ./j2sdk-1_4_2_04-linux-i586-rpm.bin
# ./j2sdk-1_4_2_04-linux-i586-rpm.bin
# rpm -ivh j2sdk-1_4_2_04-linux-i586-rpm
安装软g会将JDK自动安装? /usr/java/j2sdk1.4.2_04目录下?/p>
二、配|环境变?
1.修改用户环境变量
假设使用java的用户ؓ kunpQ编辑该用户?bashrc文gq行环境变量讄?
# vi /home/kunp/.bashrc
? .bashrc文g中加入:
export JAVA_HOME=/usr/java/j2sdk1.4.2_04
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
2.修改所有用L环境变量
# vi /etc/profile
在该文g中加?
export JAVA_HOME=/usr/java/j2sdk1.4.2_04
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
一定要在CLASSPATH路径中加?CLASSPATH:之前我因为没有加入这个东东,在解释执行class文g时L报错?/p>
二、安装ANT
1. 下蝲ant版本最新版?.8.1(2010/06)(http://tomcat.apache.org/
)
windows下蝲 zip
/ linux下蝲 tar.gz
ANT文Qhttp://ant.apache.org/manual/installlist.html
在ubuntu下:$ sudo apt-get install ant
2. ubuntu中配|?
$ sudo gedit /etc/profile
在java配置?增加
export ANT_HOME="/l/java/ant"
#不知Z q里必须有个I
export PATH="$ANT_HOME/bin:$PATH"
注销使得环境变量生效
3.windows中的配置
ANT_HOME=L:\java\ant
Path=<原Path>;ANT_HOME%\bin
Q注意其实没有等P
4.在命令行中输?ant 提示找不?build.xml 说明安装成功
三?/font>Ant?
可能有许多读者ƈ不了解什么是antQ以及如何用它?
但只要你是用qlinuxQ你应该知道makeZ物,当我们编译linux内核及一些Y件的源程序时Q我们经帔R要在控制C输入make?
Make其实是一个项目管理工P而ant所实现的功能与make差不多?
Ant是apache软g基金?jakarta目中的一个子目Q由于是Zjava~写的,因此h很好的跨q_性?
Ant׃些内|Q务(taskQ和可选择的Q务组?
Q当然你q可以编写自qdQ,使用MakeӞ你需要写一个Makefile文gQ而用ant时则需要写一个build.xml文g。由于采
用xml的语法,所以build.xml文g很容易书写和l护Q且l构很清晎ͼ而不像Makefile文g有那么多的限Ӟ例如在tabW号前有一个空?
的话Q命令就不会执行Q。Ant的优点远不止q些Q它q很Ҏ的集成到一些开发环境中Q例如visual
age,jbuilder,netbeansQ?
]]>
]]>
]]>
]]>
]]>
1 JMeter作用领域
JMeter可以用于试静态或者动态资源的性能Q文件、Servlets、Perl脚本、java对象、数据库和查询、ftp服务器或者其他的? 源)。JMeter用于模拟在服务器、网l或者其他对象上附加高负载以试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的L能? c你可以用JMeter提供的图形化界面分析性能指标或者在高负载情况下试服务?脚本/对象的行为?
2 使用JMeter试Web应用
接下来的章节里,作者将详细的演C如何用JMeter来测试Web应用的完整过E?
2.1 试环境
作者用了Tomcat作ؓWeb服务器进行测试,被测试的内容是一个jsp文g和一个servletQjsp文g调用JavaBean、打印相? 信息Qservlet接受用户参数、调用javabean、输出相关信息。详l的内容请参考作者提供的JMeter.war的内宏V?
2.2 安装启动JMeter
大家可以到通过http://apache.linuxforum.net/dist/jakarta/jmeter/binaries/jakarta-jmeter-1.9.1.zip? 载JMeter的release版本Q然后将下蝲?zip文g解压~到C:/JMeterQ后面的文章中将使用%JMeter%来引用这个目录)目录 下。现在,请?JMeter%/bin下面的jmeter.bat批处理文件来启动JMeter的可视化界面Q下面的工作都将在这个可视化界面界面? q行操作。下面的囄是JMeter的可视化界面的屏q截图?/p>
![]() |
发g?IT |
图一Q?JMeter打开时的屏幕截图
2.3 建立试计划QTest PlanQ?/strong>
试计划描述了执行测试过E中JMeter的执行过E和步骤Q一个完整的试计划包括一个或者多个线E组(Thread Groups)、逻辑控制QLogic ControllerQ、实例生控制器QSample Generating ControllersQ、侦听器(Listener)、定时器QTimerQ、比较(AssertionsQ、配|元素(Config ElementsQ。打开JMeterӞ它已l徏立一个默认的试计划,一个JMeter应用的实例只能徏立或者打开一个测试计划。现在我们开始填充一 个测试计划的内容Q这个测试计划向一个jsp文g和一个servlet发出hQ我们需要JMeter模拟五个h者(也就是五个线E)Q每个请求者连l? h两次Q下面的章节介绍了详l的操作步骤?
2.4 增加负蝲信息讄
q一步,我们向试计划中增加相兌载设|?是Jmeter知道我们需要模拟五个请求者,每个h者在试q程中连l请求两ơ。详l步骤如下:
1. 选中可视化界面中左边树的Test Plan节点Q单d键,选择Add’Thread GroupQ界面右边将会出C的设|信息框?
2. Thread Group有三个和负蝲信息相关的参敎ͼ
Number of ThreadsQ?讄发送请求的用户数目
Ramp-up periodQ?每个h发生的L间间隔,单位是秒。比如你的请求数目是5Q而这个参数是10Q那么每个请求之间的间隔是10Q?Q也是2U?
Loop CountQ?h发生的重复次敎ͼ如果选择后面的foreverQ默认)Q那?h一直l,如果不选择foreverQ而在输入框中输入数字Q那么请求将重复 指定的次敎ͼ如果输入0Q那么请求将执行一ơ?
Ҏ我们演示例子的设计,我们应该Number of Threads讄?QRamp-up period讄?Q也是同时q发hQ,不选中foreverQ在Loop Count后面的输入框中输?Q设|后的屏q截囑֦下:
![]() |
发g?IT |
图二Q设|好参数的Thread Group?
2.5 增加默认Http属性(可选)
实际的测试工作往往是针对同一个服务器上Web应用展开?所以Jmeter提供了这样一U设|? 在默认Http属性设|需要被试服务器的相关属性,以后的httph讄中就可以忽略q些相同参数的设|?减少讄参数录入的时间。我们这里将采用q? U属性。你可以通过下面的步骤来讄默认http属性:
1. 选中可视化界面中左边树的Test Plan节点Q单d键,选择Add’config element’http request defaultsQ界面右边将会出C的设|信息框?
2. 默认http属性的主要参数说明如下Q?
protocalQ发送测试请求时使用的协?
server name or ipQ被试服务器的ip地址或者名?
pathQ?默认的v始位|。比如将path讄为/jmeterQ那么所有的httph的url中都增加/jmeter路径?
port numberQ?服务器提供服务的端口?
我们的测试计划将针对本机的Web服务器上的Web应用q行试Q所以protocal应该是httpQip使用localhostQ因? web应用发布的context路径是/jmeterQ所以这里的path讄为/jmeterQ因Z用Tomcat服务器,所以port number?080。设|后的屏q截囑֦下:
![]() |
发g?IT |
图三Q?试计划中用的默认Http参数
2.6 增加Httph
现在我们需要增加httph了,他也是我们测试的内容M部分。你可以通过下面的步骤来增加性的httphQ?
1. 选中可视化界面中左边树的Thread Group节点Q单d键,选择Add’sampler’http requestQ界面右边将会出C的设|信息框?
2. 他的参数?.5中介l的http属性差不多Q增加的属性中有发送http时方法的选择Q你可以选择为get或者post?
我们现在增加两个http hQ因为我们设|了默认的http属性,所以和默认http属性中相同的属性不再重复设|。设|后的屏q截囑֦下:
![]() |
发g?IT |
囑֛Q设|好的jsp试h
![]() |
发g?IT |
图五Q设|好的Servlet试hQ带参数Q?
2.7 增加Listener
增加listener是ؓ了记录测试信息ƈ且可以用Jmeter提供的可视化界面查看试l果Q里面有好几U结果分析方式可供选择Q你可以Ҏ? ׃惯的分析方式选择不同的结果显C方式,我们q里使用表格的Ş式来查看和分析测试结果。你可以通过下面的步骤来增加listenerQ?
1. 选中可视化界面中左边树的Test Plan节点Q单d键,选择Add’listener’view result in tableQ界面右边将会出C的设|信息和l果昄框?
2. 你可以设|界面上面的filename属性设|将试l果保存到某个文件中界面下面用表格显C测试结果,表格的第一列sampleno昄h执行? 序和编Purl昄h发送的目标QsampleQms列显C个请求完成耗费的时_最后的success列显C改h是否成功执行。界面的最下面 你还可以看到一些统计信息,最兛_的应该是Average吧,也就是相应的q_旉?
2.8 开始执行测试计?/strong>
现在你可以通过单击菜单栏run -> Start开始执行测试计划了。下面这两个图是作者第一ơ、第二次执行该测试计划的l果?
![]() |
发g?IT |
囑օQ第一ơ执行后的结果显C?
![]() |
发g?IT |
图七Q第二次执行的结果显C?
大家可以看到W一ơ执行时的几个大旉值均来自于jsp requestQ这可以通过下面的理p行解释:jsp执行前都需要被~译?class文g。所以第二次的结果才是正常的l果?
3 ȝ
JMeter用于q行供能或者性能试Q通过使用JMeter提供的供能,我们可以可视化的制定试计划Q包括规定用什么样的负载、测试什么内宏V传入的参数Q同Ӟ他提供了好多U图形化的测试结果显C方式,使我们能够简单的开始测试工作和分析试l果?
本文中,作者根据自q使用l验Q详l演CZ如何使用JMeter来进行Web试的全部过E,单的介绍了JMeter提供试l果的图形化昄 界面中相兛_数的含义。希望能够帮助大家学会用JMeter的基本知识,同时Q大家可以参考这个过E和JMeter的帮助文来实现对java对象、数 据库{的试q程?