51Testing软件测试论坛

标题: JMeter+Ant+jenkins集成 [打印本页]

作者: lsekfe    时间: 2021-3-1 11:18
标题: JMeter+Ant+jenkins集成
1.        ant简介
1.1什么是ant?   
JMeter: 编写测试脚本生成jmx脚本,运行接口测试。JMeter相当于篮球场,jmx脚本相当于篮球运行场。

ant: 构建工具,通过调用JMeter来批量运行测试脚本,并生成测试报告。Ant是一个功能强大的打包编译工具。我们使用他的目的是将JTL(xml)格式文件转化为html格式的文件,相当于篮球教练的角色。

1.2什么是构建
     概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅于此,但是主要用来干这个

2.构建ant环境
1.去Apache官网上下载ant最新版,我下载的是apache-ant-1.9.15

2.下完之后解压,放到一个目录下面。我把它和jmeter都放在了D:\mysolution下

3.配置环境变量,与jmeter类似。下面这些和你ant存放的路径有关。

注:网上说需要设置ANT_HOME,CLASSPATH和Path,亲测可以只设置Path其他两项可以不进行设置。

新建系统变量ANT_HOME,值D:\mysolution\apache-ant-1.9.15

系统变量CLASSPATH,值后面添加D:\mysolution\apache-ant-1.9.15\lib   

系统变量Path,值后面添加D:\mysolution\apache-ant-1.9.15\bin  

4.进入命令提示符,输入ant,结果如下图所示,"build.xml does not exist "说明ant配置成功
[attach]132189[/attach]
3.Jmeter与Ant集成3.1JMeter部分
1.将D:\mysolution\apache-jmeter-5.3\extras文件夹下的ant-jmeter-1.1.1.jar这个jar包复制到D:\mysolution\apache-ant-1.9.15\lib文件夹下
2.用记事本打开jmeter\bin\jmeter.properties,将
jmeter.save.saveservice.output_format=csv  改成jmeter.save.saveservice.output_format=xml,记得去掉前面的“#”
[attach]132190[/attach]
3.设置输出内容,修改jmeter.properties文件。
注:可以尝试理解每行配置的含义,然后再进行你想要的个性化配置。
[attach]132191[/attach]


4.在JMeter脚本目录创建build.xml文件,请根据实际情况进行配置。


注:不要去查找build.xml文件,直接创建一个文本文件并把以下内容复制过去。配置时修改注释相当的地方即可。
  1. <?xml version="1.0" encoding="UTF8"?>
  2. <project name="ant-jmeter-test" default="run" basedir=".">
  3. <!-- 需要改成自己本地的 Jmeter 目录-->
  4. <property name="jmeter.home" value="D:\mysolution\apache-jmeter-5.3" />
  5. <property name="report.title" value="JMeter接口测试报告"/>
  6. <!-- jmeter生成jtl格式的结果报告的路径-->
  7. <property name="jmeter.result.jtl.dir" value="D:\Jmeter\report\jtl" />
  8. <!-- jmeter生成html格式的结果报告的路径-->
  9. <property name="jmeter.result.html.dir" value="D:\Jmeter\report\html" />
  10. <!-- 生成的报告的前缀-->
  11. <property name="ReportName" value="APITestReport" />
  12.         <tstamp><format property="time" pattern="YYYYMMDD HHmmss" /></tstamp>
  13. <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName} ${time}.jtl" />
  14. <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName} ${time}.html" />

  15. <target name="run">
  16. <antcall target="test" />
  17. <antcall target="report" />
  18. </target>

  19. <target name="test">
  20. <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
  21. <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
  22. <!-- 声明要运行的脚本"*.jmx"指包含此目录下的所有jmeter脚本-->
  23. <testplans dir="D:\Jmeter\script" includes="*.jmx" />

  24. <property name="jmeter.save.saveservice.output_format" value="xml"/>
  25. </jmeter>
  26. </target>

  27. <path id="xslt.classpath">
  28. <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
  29. <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
  30. </path>


  31. <target name="report">
  32. <tstamp><format property="report.datestamp" pattern="YYYY/MM/DD HH:mm" /></tstamp>
  33. <xslt
  34.               classpathref="xslt.classpath"
  35.               force="true"
  36.               in="${jmeter.result.jtlName}"
  37.               out="${jmeter.result.htmlName}"
  38.               style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">
  39. <param name="dateReport" expression="${report.datestamp}"/>
  40. <param name="titleReport" expression="${report.title}:${report.datestamp}"/>

  41. </xslt>

  42. <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以需要手动拷贝 -->
  43. <copy todir="${jmeter.result.html.dir}">
  44. <fileset dir="${jmeter.home}/extras">
  45. <include name="collapse.png" />
  46. <include name="expand.png" />
  47. </fileset>
  48. </copy>
  49. </target>

  50. </project>
复制代码

3.2ant部分

1.运行ant,进入到build.xml所在目录,运行ant。注也可以使用ant -buildfile build.xml来运行ant
[attach]132192[/attach]

运行结束后,如若出现SUCCESS信息,则表示运行成功可去对应目录查看结果。部分运行结果信息如下:
  1. BUILD SUCCESSFUL
  2. Total time: 9 seconds
复制代码

3.3查看JMeter结果[attach]132193[/attach]


此报告是\apache-jmeter-5.3\extras这个目录下jmeter-results-detail-report_21.xsl这个样式生成的报告


4.报告优化

ant默认报告并不好看,出错之后,很难从报告上去定位问题,定位问题在哪里,可进行优化。优化原理:其实由.jtl格式转换为.html格式的报告过程中,style文件起了很关键的作用。


[attach]132194[/attach]
3.修改build.xml文件如下部分,修改xsl样式文件的文件名即可
[attach]132195[/attach]
4.运行结果:
[attach]132196[/attach]


1.        jenkins持续集成

Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。


简而言之:Jenkins是实现持续集成平台脚本的定时运行、邮件发送、测试报告展示等


5.1jenkins的安装配置

jenkins下载地址:https://jenkins.io/zh/download/,下载windows版并安装jenkins,安装成功后会自动打开: http://localhost:8080 页面,等待进入jenkins的配置页面。
[attach]132197[/attach]


解锁jenkins完成配置
[attach]132198[/attach]
关于插件的选择,还是老套路,省事用安装推荐的插件,高手自定义。
[attach]132199[/attach]


创建管理员用户
[attach]132200[/attach]


实例配置
[attach]132201[/attach]


5.2jenkins的使用

5.2.1新建一个job[attach]132202[/attach]


5.2.2  jenkin 配置中增加Ant插件[attach]132203[/attach]


添加待构建的文件路径,即Ant执行的build.xml文件路径。
[attach]132204[/attach]


5.2.3立即构建[attach]132205[/attach]


5.2.4构建触发器[attach]132206[/attach]


日程说明:其中有5个参数
[attach]132207[/attach]














5.3jenkins其他配置

5.3.1丢弃旧的配置

服务器资源是有限的,有时候保存了太多的历史构建,会导致Jenkins速度变慢,并且服务器硬盘资源也会被占满。当然下方的"保持构建天数" 和保持构建的最大个数是可以自定义的,需要根据实际情况确定一个合理的值。
[attach]132208[/attach]


5.3.2邮件通知设置

[attach]132209[/attach]
2.找到插件安装这里面的邮件插件
[attach]132210[/attach]
3.返回到配置界面,然后点击系统配置,找到下图的地方:填写两个东西
[attach]132211[/attach]


4.进入到最下面的邮箱配置,点开高级,然后按照要求填写内容。。请注意密码这个东西:是QQ邮箱的此处授权码


,另外用户名不要跟后缀。然后勾选测试,成功后会收到邮件
[attach]132212[/attach]


SMTP基础设置,见下图:
[attach]132213[/attach]


ExtendedE-mail Notification:


这是使用第三方插件的邮箱功能,方法跟上面这个一样


5.4构建结果说明

5.4.1构建状态



5.4.2构建稳定性

构建稳定性用天气表示:晴、晴转多云、多云、小雨、雷阵雨。天气越好表示构建越稳定,反之亦然。


5.4.3构建历史界面

本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。


作者: Miss_love    时间: 2021-3-11 15:53
66666666




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2