jakartajmeter24使用说明.docx
《jakartajmeter24使用说明.docx》由会员分享,可在线阅读,更多相关《jakartajmeter24使用说明.docx(12页珍藏版)》请在冰点文库上搜索。
![jakartajmeter24使用说明.docx](https://file1.bingdoc.com/fileroot1/2023-5/9/b4e79d0a-cf8b-4a48-b311-73260cbad944/b4e79d0a-cf8b-4a48-b311-73260cbad9441.gif)
jakartajmeter24使用说明
Jmeter是开源的性能测试框架,URL:
http:
//jakarta.apache.org/jmeter/
download:
http:
//jakarta.apache.org/site/downloads/downloads_jmeter.cgi
使用说明:
1.Stepbystep:
注意:
SamplerResult的开始和结束应加载需要执行性能测试的前后,用于收集测试的结果。
启动无界面的Jmeter程序:
nohup./jmeter.sh-n-tcatcachetest.jmx&
Jmeter使用的参数如下:
1.Invoking JMeter as "jmeter -?
" will print a list of all the command-line options. These are shown below.
2.
3.
4. -h, --help
5. print usage information and exit
6. -v, --version
7. print the version information and exit
8. -p, --propfile {argument}
9. the jmeter property file to use
10. -q, --addprop {argument}
11. additional property file(s)
12. -t, --testfile {argument}
13. the jmeter test(.jmx) file to run
14. -j, --jmeterlogfile {argument}
15. the jmeter log file
16. -l, --logfile {argument}
17. the file to log samples to
18. -n, --nongui
19. run JMeter in nongui mode
20. -s, --server
21. run the JMeter server
22. -H, --proxyHost {argument}
23. Set a proxy server for JMeter to use
24. -P, --proxyPort {argument}
25. Set proxy server port for JMeter to use
26. -u, --username {argument}
27. Set username for proxy server that JMeter is to use
28. -a, --password {argument}
29. Set password for proxy server that JMeter is to use
30. -J, --jmeterproperty {argument}={value}
31. Define additional JMeter properties
32. -G, --globalproperty (argument)[=(value)]
33. Define Global properties (sent to servers)
34. e.g. -Gport=123
35. or -Gglobal.properties
36. -D, --systemproperty {argument}={value}
37. Define additional System properties
38. -S, --systemPropertyFile {filename}
39. a property file to be added as System properties
40. -L, --loglevel {argument}={value}
41. Define loglevel:
[category=]level
42. e.g. jorphan=INFO or jmeter.util=DEBUG
43. -r, --runremote (non-GUI only)
44. Start remote servers (as defined by the jmeter property remote_hosts)
45. -R, --remotestart server1,... (non-GUI only)
46. Start these remote servers (overrides remote_hosts)
47. -d, --homedir {argument}
48. the jmeter home directory to use
49. -X, --remoteexit
50. Exit the remote servers at end of test (non-GUI)
51.
52.Note:
the JMeter log file name is formatted as a SimpleDateFormat (applied to the current date) if it contains paired single-quotes, .e.g. 'jmeter_'yyyyMMddHHmmss'.log'
53.
54.If the special name LAST is used for the -t, -j or -l flags, then JMeter takes that to mean the last test plan that was run in interactive mode.
2.Jtl文件的解析是在linux上面用jtlparser来完成的,这个也非常大,传输到windows上面不现实。
./jmeter.sh-n-tcatcachetest.jmx
3.Nmon解析格式:
由于Nmon收集的文件不大,收集好了传输到windows上面用nmon的excel编程就完成了。
nmon的启动方式为:
./nmon -f -s 15 -c 400
nmon启动:
Startbycapturingasmallsamplefile.Type:
nmon-f-s2-c30
∙The-fmeansyouwantthedatasavedtoafileandnotdisplayedonthescreen.
∙The-s2meansyouwanttocapturedataevery2seconds
∙The-c30meansyouwantthirtydatapointsorsnapshots
∙ThismeansthatafterafewsecondscollectingtheconfigurationnmonforLinuxwillrunfor2x30=60secondsandstop.Attheendsomefurtherconfigurationdataiscollected.
nmon主页:
nmon下载:
nmon分析器from ibm:
4.小孟Jmeter使用:
http:
//process.alibaba-
5.采用badboy可以录制页面做为压力发起的脚本
(1)打开BadBoy的录制界面
(2)启动软件,录制操作,保存为‘exporttojmeter’的方式,“PalyAll”(“>>”标记)可以回放录制的过程,保存之后再使用jmeter打开jmx文件【注意】Badboy2.1版本需要是用2.3.4版本的Jmeter打开脚本,2.4的测试有些兼容性的问题。
(3)增加断言(即检查点):
Tools->AddInverseAssertion,写入要检查的内容。
【注意】检查的时候它会从界面的整个内容进行检查,包括有页面最底部的相关链接等等
(4)http请求中,取样器部分,点击录制好的取样器,在下面的“其他任务”->“从HTML中获取所有内容的资源”,勾上标示请求的时候将页面中所有内容取回来(包括图片等),一般不要勾上。
(5)添加thinktime,即思考时间。
常用于模拟真实的用户操作时中间的思考等。
添加方法:
右键添加->定时器->固定定时器,其下面的线程延迟即为thinktime,以毫秒为单位。
(6)集合点(SynchronizingTimer):
右键添加->定时器->SynchronizingTimer,目的在于模拟瞬间的高压
(7)参数化请求参数,一般选用CSVDataSetConfig。
右键添加->配置原件-> CSVDataSetConfig,配置好参数之后,指定filename(绝对路径),参数变量名VariableNames:
name1,name2;开始引用参数,${name1},${name2} 。
【注意】CSVDataSetConfig的位置必须放在使用到它之前即可,却filename必须指定为绝对路径,例如:
D:
\openSources\jmeter2.3.4\jakarta-jmeter-2.3.4\bin\OutputWhiteBackup.xml
(8)另外一种参数化方式:
通过函数助手总文件中读取内容:
“选项”-》“函数助手对话框”-》“选择一个功能”:
—StringFromFile,配置里面的参数即可(1-02‘-26‘’)
(9)事务控制器:
将其他内容拉入事务控制器中形成一个事务操作。
6、修改JmeterJVM的启动参数在bin目录下面的jmeter.sh中,添加或修改
JVM_ARGS="-Xms1g -Xmx1g"
/home/jiangyr/jmetercat/jdk1.6.0_20/bin/java$JVM_ARGS-Dapple.laf.useScreenMenuBar=true-jar`dirname$0`/ApacheJMeter.jar"$@"
7、Jmeter中使用自定义编写的Java测试代码
From:
试验后的完整代码如下:
1、TestLength.java
packagecom.alibaba.pc2;
importorg.apache.jmeter.config.Arguments;
importorg.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
importorg.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
importorg.apache.jmeter.samplers.SampleResult;
importorg.apache.log4j.Logger;
publicclassTestLengthextendsAbstractJavaSamplerClient{
privatestaticLoggerlog=Logger.getLogger(TestLength.class);
privateStringtestStr;
publicvoidsetupTest(JavaSamplerContextarg0){
testStr=arg0.getParameter("testString","abcdefg");
if(testStr!
=null&&testStr.length()>0){
results.setSamplerData(testStr);
}
}
publicArgumentsgetDefaultParameters(){
Argumentsparams=newArguments();
params.addArgument("testStr","");
returnparams;
}
publicSampleResultrunTest(JavaSamplerContextarg0){
SampleResultresults = new SampleResult();;
intlen=0;
results.sampleStart();
len=testStr.length();
results.sampleEnd();
if(len<5){
System.out.println(testStr);
results.setSuccessful(false);
log.error("error,testStr:
"+testStr);
}else{
results.setSuccessful(true);
log.info("successful,testStr:
"+testStr);
}
returnresults;
}
publicvoidteardownTest(JavaSamplerContextarg0){
}
/* publicstaticvoidmain(String[]args){
JavaSamplerContextcontext=newJavaSamplerContext(newArguments());
TestLengthtl=newTestLength();
for(inti=0;i<3;i++){
tl.setupTest(context);
tl.runTest(context);
tl.teardownTest(context);
}
}*/
}
2、pom.xml
//maven.apache.org/POM/4.0.0"xmlns:
xsi="http:
//www.w3.org/2001/XMLSchema-instance"
xsi:
schemaLocation="http:
//maven.apache.org/POM/4.0.0http:
//maven.apache.org/maven-v4_0_0.xsd">
4.0.0
com.alibaba
pampas
3-RC1
com.alibaba.pc2
demo01
jar
1.0-SNAPSHOT
demo01
http:
//maven.apache.org
com.alibaba.external
test.junit
4.4
com.alibaba.external
apache.jmeter
2.3
com.alibaba.external
jakarta.log4j
1.2.8
maven-compiler-plugin
1.6
1.6
UTF-8
maven-assembly-plugin
jar-with-dependencies
3、mvnassembly:
assembly
4、制作jmx文件
(1)创建‘线程组’
(2)在线程组的基础上增加‘Sampler’->‘Java请求’,在类名称处选择编写的性能测试程序
(3)在‘线程组’的基础上添加‘聚合报告’
(4)在‘线程组’的基础上可选的添加‘查看结果树’
(5)在线程组上填写:
线程数、Ramp-UpPeriod(即多长时间内启动所有的线程)、循环次数勾上‘永远’,在调度器中‘启动延迟’填写0,在持续时间中填写持续的时间(以秒为单位,比如60秒)
(6)保存为jmx文件
5、Badboy:
.au/
6、Jmeter的log输出控制:
jmeter.log(细节见下面的8)
在jakarta-jmeter-2.3.4\bin下面的jmeter.properties
1.log_level.jmeter=ERROR
2.log_level.jmeter.junit=DEBUG
7、Jmeter中不生成jtl文件的设置,直接得到计算之后的性能结果
在jmeter/bin下面的jmeter.properties文件中,打开配置summariser.name=summary 、summariser.interval=20、summariser.log=true
1.summariser.name=summary
2.#
3.# interval between summaries (in seconds) default 3 minutes
4.summariser.interval=20
5.#
6.# Write messages to log file
7.summariser.log=true
8.#
9.# Write messages to System.out
10.#summariser.out=true
8、在jmeter.properties中,修改Jmeter的日志级别为:
ERROR,否则产生巨大的日志文件jmeter.log
1.log_level.