前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何将性能测试与持续集成连接起来

如何将性能测试与持续集成连接起来

作者头像
顾翔
发布2019-12-12 13:56:43
1.6K0
发布2019-12-12 13:56:43
举报

来源:http://www.ltesting.net

目的

  • 将性能测试与持续集成挂接起来
  • 性能测试: JMeter
  • 持续集成: Jenkins

JMeter

  • 下载JMeter,官网: http://jmeter.apache.org/
  • 创建测试计划: 访问 http://www.cnblog.com ,验证Response的返回值中存在cnblog

Thread组配制

Http请求

Response断言

  • 使用GUI的JMeter查看运行测试结果

GUI JMeter测试结果

  • 使用命令行执行测试 -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

  • 下载Jenkins包,官网: https://jenkins.io/
  • 启动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
  • 安装Performance plugin插件: Performance Plugin

Performance plugin

  • 配制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'
  • 运行JOB,查看结果

Jenkins执行结果

  • JOBworkspace下会生成两个文件jmeter.log TestPlan.jtl

jmeter.log TestPlan.jtl

配制运行报告

  • 添加测试报告

报告读取

  • 查看统计结果

统计结果

后续

  • 可将jmx文件存放到仓库中,便于维护和管理
  • JOB添加到版本构建中,在版本构建完成后,自动执行性能,确保每次的版本Build均满足性能需求

作者:Yuan_Jie 链接:https://www.jianshu.com/p/edc0d171a6d1 来源:简书 简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

星云测试

http://www.teststars.cc

奇林软件

http://www.kylinpet.com

联合通测

http://www.quicktesting.net

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试培训 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目的
  • JMeter
  • Jenkins
    • 配制JMeter
      • 配制运行报告
      • 后续
      相关产品与服务
      持续集成
      CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档