目的
1.将性能测试与持续集成挂接起来
2.性能测试: JMeter
3.持续集成: Jenkins
JMeter
[attach]107753[/attach]
Thread组配制
[attach]107754[/attach]
Http请求
[attach]107755[/attach]
Response断言
3.使用GUI的JMeter查看运行测试结果
[attach]107756[/attach]
GUI JMeter测试结果
4.使用命令行执行测试
-J 指定生成的结果格式为xml,-t 指定测试文件,-l 测试结果
java -jar ApacheJMeter.jar -Jjmeter.save.saveservice.output_format=xml -n -t /Users/yjshi/Downloads/TestPlan.jmx -l TestPlan.jtl |
结果
Writing log file to: /Users/yjshi/Downloads/apache-jmeter-3.0/bin/jmeter.log Creating summariser <summary> Created the tree successfully using /Users/yjshi/Downloads/TestPlan.jmx Starting the test @ Thu Aug 04 18:41:43 CST 2016 (1470307303526) Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445 summary = 10 in 00:00:01 = 8.3/s Avg: 333 Min: 183 Max: 539 Err: 0 (0.00%) Tidying up ... @ Thu Aug 04 18:41:44 CST 2016 (1470307304767) ... end of run |
JMeter已经可以通过命令行来执行
Jenkins
配制JMeter
2.启动Jenkins
Running from: /Users/yjshi/Downloads/All/Software/jenkins/jenkins.war webroot: $user.home/.jenkins Aug 04, 2016 5:52:13 PM winstone.Logger logInternal INFO: Beginning extraction from war file Aug 04, 2016 5:52:13 PM org.eclipse.jetty.util.log.JavaUtilLog info INFO: jetty-winstone-2.9 Aug 04, 2016 5:52:19 PM org.eclipse.jetty.util.log.JavaUtilLog info INFO: NO JSP Support for , did not find org.apache.jasper.servlet.JspServlet Jenkins home directory: /Users/yjshi/.jenkins found at: $user.home/.jenkins Aug 04, 2016 5:52:26 PM org.eclipse.jetty.util.log.JavaUtilLog info INFO: Started SelectChannelConnector@0.0.0.0:8080 Aug 04, 2016 5:52:26 PM winstone.Logger logInternal INFO: Winstone Servlet Engine v2.0 running: controlPort=disabled Aug 04, 2016 5:52:26 PM jenkins.InitReactorRunner$1 onAttained INFO: Started initialization Aug 04, 2016 5:52:32 PM jenkins.InitReactorRunner$1 onAttained INFO: Listed all plugins Aug 04, 2016 5:52:32 PM jenkins.InitReactorRunner$1 onAttained INFO: Prepared all plugins Aug 04, 2016 5:52:32 PM jenkins.InitReactorRunner$1 onAttained INFO: Started all plugins Aug 04, 2016 5:52:32 PM jenkins.InitReactorRunner$1 onAttained INFO: Augmented all extensions Aug 04, 2016 5:52:35 PM jenkins.InitReactorRunner$1 onAttained INFO: Loaded all jobs Aug 04, 2016 5:52:35 PM hudson.model.AsyncPeriodicWork$1 run INFO: Started Download metadata Aug 04, 2016 5:52:35 PM org.jenkinsci.main.modules.sshd.SSHD start INFO: Started SSHD at port 54488 Aug 04, 2016 5:52:35 PM jenkins.InitReactorRunner$1 onAttained INFO: Completed initialization Aug 04, 2016 5:52:35 PM hudson.UDPBroadcastThread run INFO: Cannot listen to UDP port 33,848, skipping: java.net.SocketException: Can't assign requested address Aug 04, 2016 5:52:35 PM jenkins.InitReactorRunner$1 onAttained INFO: Started initialization Aug 04, 2016 5:52:35 PM jenkins.InitReactorRunner$1 onAttained INFO: Listed all plugins Aug 04, 2016 5:52:35 PM jenkins.InitReactorRunner$1 onAttained INFO: Prepared all plugins Aug 04, 2016 5:52:35 PM jenkins.InitReactorRunner$1 onAttained INFO: Started all plugins Aug 04, 2016 5:52:35 PM jenkins.InitReactorRunner$1 onAttained INFO: Augmented all extensions Aug 04, 2016 5:52:35 PM jenkins.InitReactorRunner$1 onAttained INFO: Loaded all jobs Aug 04, 2016 5:52:35 PM jenkins.InitReactorRunner$1 onAttained INFO: Completed initialization Aug 04, 2016 5:52:35 PM hudson.WebAppMain$3 run INFO: Jenkins is fully up and running |
3.安装Performance plugin插件: Performance Plugin
[attach]107762[/attach]
.Performance plugin
4.配制Jenkins中的JOB
echo 'begin testing' java -jar /Users/yjshi/Downloads/apache-jmeter-3.0/bin/ApacheJMeter.jar -Jjmeter.save.saveservice. output_format=xml -n -t /Users/yjshi/Downloads/TestPlan.jmx -l TestPlan.jtl echo 'testing end' |
5.运行JOB,查看结果
[attach]107763[/attach]
Jenkins执行结果
6.在JOB的workspace下会生成两个文件jmeter.log TestPlan.jtl
[attach]107764[/attach]
jmeter.log TestPlan.jtl
配制运行报告
1.添加测试报告
[attach]107765[/attach]
报告读取
2.查看统计结果
[attach]107766[/attach]
统计结果
后续
1.可将jmx文件存放到仓库中,便于维护和管理
2.将JOB添加到版本构建中,在版本构建完成后,自动执行性能,确保每次的版本Build均满足性能需求
参考
1.JMeter
2.Jenkins
3.Performance Plugin
4.Continuous Integration 101: How to Run JMeter With Jenkins
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) | Powered by Discuz! X3.2 |