当前位置:   article > 正文

Linux环境下搭建jmeter+ant+Jenkins持续集成测试平台记录_jmeter.results.shanhe.me.xsl

jmeter.results.shanhe.me.xsl

目录

1.安装JDK

2.安装Jmeter

3.安装ant

4.Jmeter+Ant配置

5.Jenkins安装

第一篇博客完结,撒花!


1.安装JDK

1.首先在官网下载一个jdk8:https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html

选择linux版本进行下载

2.下载后的tar包,通过rz或者scp命令,上传到目标Linux服务器中

并创建/etc/java/文件夹,移动到此文件夹下并解压

 tar -zxvf jdk-8u281-linux-x64.tar.gz

3.vi /etc/profile 编辑环境变量 (全局变量,需要root权限)

没root权限的话可以在个人家目录下的 .bash_profile文件加入环境变量

在末位加上java相关环境变量

  1. #java env
  2. JAVA_HOME=/etc/java/jdk1.8.0_281
  3. CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  4. PATH=$PATH:$JAVA_HOME/bin:
  5. export JAVA_HOME
  6. export CLASSPATH
  7. export PATH

加完以后,需要重新加载环境变量

  1. source /etc/profile
  2. # 或者
  3. source .bash_profile

④验证:JDK是否安装完成

java -version

20210331161004254.png

2.安装Jmeter

①下载jmeter包:Apache JMeter - Download Apache JMeter,下载之后移动到linux服务器上面,然后进行解压,步骤和安装jdk一样

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMwMzAxMjkz,size_16,color_FFFFFF,t_70

②配置环境变量,在profile文件中配置

  1. #jmeter env
  2. JMETER_HOME=/etc/jmeter/apache-jmeter-5.4.1
  3. CLASSPATH=.:$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/log4j-core-2.11.0.jar
  4. PATH=$PATH:$JAVA_HOME/bin:$JMETER_HOME/bin:$ANT_HOME/bin
  5. export JMETER_HOME
  6. export CLASSPATH
  7. export PATH

加完以后,需要重新加载环境变量

  1. source /etc/profile
  2. # 或者
  3. source .bash_profile

③验证jmeter是否安装好

jmeter -v

38bac19a544346eb9f64820e47043dc8.png

出现上面这个就ok啦

3.安装ant

1、下载ant,ant下载地址:https://ant.apache.org/bindownload.cgi

2、将下载好的安装包上传到服务器

3、解压安装包:tar -zxvf /test/apache-ant-1.10.9-bin.tar

4、配置环境变量:

  1. export ANT_HOME=/home/test/apache-ant-1.10.9
  2. export PATH=$PATH:$ANT_HOME/bin
  • 输入source /etc/profile 或者source .bash_profile让配置文件生效
  • 最后检查是否安装成功,输入 ant -v,如果安装成功,就会出现如下信息:

536a74d892844330be7c3b215200507b.png

5、防止运行时报错,可以cp一份build.xml(下面有详解)到ant的bin目录下

4.Jmeter+Ant配置

1

  • 将“jmeter.results.shanhe.me.xsl” 文件放到jmeter安装目录的 extras 目录下
  • 将jmeter的extras目录下的ant-jmeter-1.1.1.jar文件,拷贝到Ant安装目录的lib目录下
  • 将jmeter的lib目录下,把serializer-2.7.2.jar、xalan-2.7.2.jar文件复制到ant的lib目录下

2、创建ant工作目录以及报告存放目录

创建一个工作目录ant-jmeter,在其中新建目录result和script,在script下新建build.xml(ant构建时运行的动作)在文件夹result新建文件夹html和jtl存放jmeter报告

3、因为我build.xml配置了发送邮件。所以ant还需要下载几个jar包才可以发送邮件

activation.jar、commons-lang3-3.8.1.jar、mail.jar 直接下载然后丢到ant目录中的lib目录就可以
链接: https://pan.baidu.com/s/18BWUMrW7ABfBlvU_b3Mppw 提取码: 8jk4

4、 build.xml放到你的ant工作目录下的script目录下

        ant的build.xml详解

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project name="tsg-autotest" default="run" basedir=".">
  3. <tstamp>
  4. <format property="time" pattern="yyyy:MM:dd:hh:mm"/>
  5. </tstamp>
  6. <property name="basedirectory" value="jmeter+ant+jenkins"/>
  7. <!-- 需要改成自己本地的 Jmeter 目录-->
  8. <property name="jmeter.home" value="/xxx/xxx/xxx/apache-jmeter-5.4.1"/>
  9. <!-- 需要改成自己本地的 work 目录-->
  10. <property name="work.dir" value="/xxx/xxx/xxx/xxx/ant-jmeter"/>
  11. <!-- 发送给哪些人,多个用逗号隔开-->
  12. <property name="mail_to" value="xxx@163.com,xxx@qq.com"/>
  13. <property name="report.title" value="TSG自动化测试报告"/>
  14. <!-- jmeter生成jtl格式的结果报告的路径-->
  15. <property name="jmeter.result.jtl.dir" value="/xxx/xxx/xxx/xxx/ant-jmeter/result/jtl"/>
  16. <!-- jmeter生成html格式的结果报告的路径-->
  17. <property name="jmeter.result.html.dir" value="/xxx/xxx/xxx/xxx/ant-jmeter/result/html"/>
  18. <!-- 生成的报告的前缀-->
  19. <property name="ReportName" value="AutoTest-Report-detailed"/>
  20. <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}-${time}.jtl"/>
  21. <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}-${time}.html"/>
  22. <!-- 生成清晰的报告 -->
  23. <property name="ReportNameB" value="AutoTest-Report-simple"/>
  24. <property name="jmeter.result.htmlNameB" value="${jmeter.result.html.dir}/${ReportNameB}.html"/>
  25. <!--定义次build.xml要执行全部的任务-->
  26. <target name="run">
  27. <antcall target="clear"/>
  28. <antcall target="test"/>
  29. <antcall target="report"/>
  30. <antcall target="mail"/>
  31. </target>
  32. <!--执行第一个任务,清理旧报告-->
  33. <target name="clear">
  34. <!-- 每次执行前先删除清空jtl和html文件夹,释放空间 -->
  35. <echo message="释放空间,清空jtl和html文件夹中 ..."></echo>
  36. <delete dir="${jmeter.result.html.dir}"/>
  37. <delete dir="${jmeter.result.jtl.dir}"/>
  38. <!-- 删除-->
  39. <!--<delete file="${work.dir}/result/console/*.txt" />-->
  40. <sleep seconds="1"/>
  41. <echo message="释放完成 ..."></echo>
  42. </target>
  43. <!--第二个任务,执行test-->
  44. <target name="test">
  45. <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/>
  46. <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
  47. <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->
  48. <testplans dir="${work.dir}/script" includes="*.jmx"/>
  49. <property name="jmeter.save.saveservice.output_format" value="xml"/>
  50. </jmeter>
  51. </target>
  52. <!--引入外部jar包-->
  53. <path id="xslt.classpath">
  54. <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
  55. <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
  56. </path>
  57. <!--执行第三个任务,生成报告-->
  58. <target name="report">
  59. <!--<tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp> -->
  60. <xslt classpathref="xslt.classpath"
  61. force="true"
  62. in="${jmeter.result.jtlName}"
  63. out="${jmeter.result.htmlName}"
  64. style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl">
  65. <param name="dateReport" expression="${report.datestamp}"/>
  66. </xslt>
  67. <xslt classpathref="xslt.classpath"
  68. force="true"
  69. in="${jmeter.result.jtlName}"
  70. out="${jmeter.result.htmlNameB}"
  71. style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">
  72. <param name="dateReport" expression="${report.datestamp}"/>
  73. </xslt>
  74. <copy todir="${jmeter.result.html.dir}">
  75. <fileset dir="${jmeter.home}/extras">
  76. <include name="collapse.png"/>
  77. <include name="expand.png"/>
  78. </fileset>
  79. </copy>
  80. </target>
  81. <!--将控制台输出到文本中-->
  82. <record name="${work.dir}/result/console/build-console-${time}.txt" loglevel="info" append="no"
  83. action="start"/>
  84. <!--执行第四个任务,发送邮件-->
  85. <target name="mail">
  86. <!--把报告进行压缩打包-->
  87. <jar jarfile="${jmeter.result.html.dir}/${ReportName}.rar" basedir="${jmeter.result.html.dir}"/>
  88. <!--<jar jarfile="${jmeter.result.html.dir}/console.rar" basedir="${work.dir}/result/console"/>-->
  89. <!--把文件贴到邮件正文-->
  90. <!-- <loadfile property="html" srcFile="${jmeter.result.html.dir}/${ReportNameB}.html" encoding="UTF-8">-->
  91. <!--<filterchain>-->
  92. <!-- <expandproperties/>-->
  93. <!-- </filterchain>-->
  94. <!-- </loadfile>-->
  95. <mail mailhost="smtp.qq.com"
  96. mailport="25" subject="${ReportName}"
  97. messagemimetype="text/html" tolist="${mail_to}"
  98. user="xxx@qq.com" password="开启自己qq邮箱的smtp就有了">
  99. <from address="xxx@qq.com"/>
  100. <!--发送附件-->
  101. <fileset dir="${jmeter.result.html.dir}">
  102. <include name="${ReportName}.rar"/>
  103. </fileset>
  104. <fileset dir="${work.dir}/result/console">
  105. <include name="build-console-${time}.txt"/>
  106. </fileset>
  107. <message><![CDATA[
  108. <p>Author收:
  109. 这是用Ant自动发送的测试报告,构建时间为${time},详细报告请查看附件rar。
  110. </p>
  111. <p> 附件介绍: ${ReportName}.rar里是详细的测试报告,其内包含接口的请求及响应内容,txt是jenkins控制台输出的内容。</p>
  112. ]]></message>
  113. </mail>
  114. </target>
  115. </project>

5、修改jmeter.properties文件如下部分,都改成true,让报告输出的内容更详细

  1. jmeter.save.saveservice.data_type=true
  2. jmeter.save.saveservice.label=true
  3. jmeter.save.saveservice.response_code=true
  4. # response_data is not currently supported for CSV output
  5. jmeter.save.saveservice.response_data=false
  6. # Save ResponseData for failed samples
  7. jmeter.save.saveservice.response_data.on_error=false
  8. jmeter.save.saveservice.response_message=true
  9. jmeter.save.saveservice.successful=true
  10. jmeter.save.saveservice.thread_name=true
  11. jmeter.save.saveservice.time=true
  12. jmeter.save.saveservice.subresults=true
  13. jmeter.save.saveservice.assertions=true
  14. jmeter.save.saveservice.latency=true
  15. # Only available with HttpClient4
  16. jmeter.save.saveservice.connect_time=true
  17. jmeter.save.saveservice.samplerData=false
  18. jmeter.save.saveservice.responseHeaders=false
  19. jmeter.save.saveservice.requestHeaders=false
  20. jmeter.save.saveservice.encoding=false
  21. jmeter.save.saveservice.bytes=true
  22. # Only available with HttpClient4
  23. jmeter.save.saveservice.sent_bytes=true
  24. jmeter.save.saveservice.url=true
  25. jmeter.save.saveservice.filename=false
  26. jmeter.save.saveservice.hostname=false
  27. jmeter.save.saveservice.thread_counts=true
  28. jmeter.save.saveservice.sample_count=false
  29. jmeter.save.saveservice.idle_time=true

这俩个也ctrl F找出来改下

jmeter.save.saveservice.output_format=xml        (csv改为xml)

server.rmi.ssl.disable=true        (false改为true)

6、测试运行

把你在jmeter GUI模式下调试好jmx文件放到你的工作目录ant-jmeter/script下

正确完成以上动作之后,你的ant-jmeter/script下具有jmeter的jmx文件和build.xml文件时,你就可以在当前目录直接输入ant然后回车,这就可以直接运行了

提示BUILD SUCCESSFUL,即运行成功

可下载html查看html形式的测试报告,也可以通过jtl在jmeter里用查看结果树查看

想要持续集成的话自然少不了jenkins,所以下面我们来安装jenkins

5.Jenkins安装

1、①在官网下载jenkins war包,https://www.jenkins.io/download/,下载之后然后上传到linux环境

或者linux环境下curl -o jenkins.war http://updates.jenkins-ci.org/latest/jenkins.war下载
2、下载个tomcat作为jenkins的容器:wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.87/bin/apache-tomcat-8.5.87.tar.gz

3、下载好后把jenkins的war包放在tomcat的webapp目录下,启动tomcat,如8080端口冲突需修改server.xml的端口
4、启动之后,直接打开浏览器输入http://服务器IP:port/jenkins,即进入jenkins页面,如下图。

此处简略,若遇到问题无法安装jenkins可搜索其它安装jenkins的文章解决问题。

8b2a631b9fa3436e8624492bddcafa8d.png

5、在配置ant之前,我们需要给jenkins安装一些插件:Ant Plugin、HTML Publisher plugin、Groovy。一个都不能少哦!以保证我们的自动化能够正常的执行和测试结果能够生成html测试报告并发送

点击系统管理->插件管理,在“可选插件”页签中,找到这几个插件并直接安装就好,安装好之后我们就可以进行系统的设置了

6、系统设置

1)点击系统管理->系统设置,进入到这个页面,编辑全局属性

5277f5a93cdd457d87cb221292fc2ce0.png

 8f8152c643e641a9ab92ea8b4c82d969.png

ant同上输入本机ant地址

 4、配置项目

新建一个自由风格的项目,并构建:

715df1dddd9a4a40899e5ce898c751d0.png

d7b3483e84e940c7a3e093081b2cd484.png

 1、可以先定义一个ant的工作目录

93ac5d7151194348906ae6600bfd6c25.png

2、 Source Code Management选None

3、Build Triggers 勾选Build when job nodes start设置个前置,Jenkins启动时执行配置命令

d13f5589fa0a4041b3975e899889f893.png

 4、在Build模块下,Add build step->Execute system Groovy script,在Groovy Script中输入配置命令:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")  。

        不加的话jenkins的html report是看不了的

73e7f9a7b72d4cee9764d184317739a7.png

 5、在Build模块下 Add build step->lnvoke Ant

0c5c4e4927494681b05722ccc72f844f.png

 6、在Build模块下 Add post-build-action-> Publish HTML reports

99fe4abfdf1a4fd99e603513cc04d89d.png

         绝对路径和相对路径都可以。

7、需要持续集成的话那就少不了定时任务,加一个上班时间跑的吧

Build Triggers  -> Build periodically

0 9 * * *   每天九点跑一下,带薪wc之后回来看报告就ok。

1c9ae7e2265644258c0ae98a4d2f0699.png

 想要配置其它时间可以参考:

  1. 自己设置时间点自动执行当前的任务
  2. 定时任务:
  3. 分钟 小时 一月的天数 月份 一周的天数
  4. 0-59 0-23 1-31 1-12 0-7(0HE 7表示周天)
  5. 1、每天晚上20点整自动执行(*号表示取所有的)
  6. 0 20 * * *
  7. 2、一周1,3,5晚上20点执行 (英文状态下的逗号和星号)
  8. 0 20 * * 1,3,5
  9. 3、每周周1-周5晚上20点整执行
  10. 0 20 * * 1,2,3,4,5 对于连续的时间,可以用-来表示,可以写为
  11. 0 20 * * 1-5
  12. 4、一周内每2天,晚上20点整执行
  13. 0 20 * * */2

到这里我们jenkins就配置好啦,save一下保存就好了。

8、build一下这个项目吧

 控制台是BUILD SUCCESSFUL就没问题啦

 可以在这里查看报告

be025fd7803c42e3bd6b8f42815874d4.png

我设置的报告类型在这里是jmeter-results-detail-report_21.xsl的

因为它jenkins的html-reports吃样式太多了,用jmeter.results.shanhe.me.xsl的报告会有点呆

74a06ace5c75457984b1172f87b13f97.png

可以看下你填的收件人是否收到

99574b50b6e543ebac7db3a647ad3a9c.png

 这样下来,我们接口自动化的测试框架就已经搭建好啦,可以开展持续集成的工作了。

参考:

Linux下的Jenkins+ant+jmeter 持续集成平台搭建及出现的问题_雪之之呀的博客-CSDN博客

linux 中搭建Jenkins+ant+jmeter 轻量级接口测试_天下我有123的博客-CSDN博客

搭建ant+jenkins+jmeter自动化接口测试框架(详细篇)_猎摘互联网软件测试业界技术文章专用博客的博客-CSDN博客

第一篇博客完结,撒花!

如果对你有帮助的话,给我点个赞吧,赠人点赞手有余香。
有问题可以在评论区留言,看到会尽力解答。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/526448
推荐阅读
相关标签
  

闽ICP备14008679号