ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

jmeter+ant+jenkins 搭建持续集成接口测试

2022-02-02 17:02:19  阅读:126  来源: 互联网

标签:xml ant build apache jenkins jmeter


一、解释

    ant 是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。在实际软件开发中,有很多地方可以用到ant。

   jmeter、jenkins 大家都清楚,不做解释(哈哈 实际我也解释不了太深  ,也就是使用)

二、背景

    主要是实现jmeter +ant +jenkins  的自动构建及测试报告的查看及邮件通知构建、测试结果。

三、实际操作

    1.我自己是在windons 下操作的

   jdk、ant、jmeter、jenkins

     2.ant+jmeter  实现

      先创建好接口测试脚本,以及存放目录等

    注意build.xml的文件配置(D:\tool\jmeter\apache-jmeter-5.4.3\extras),文件路径不要配置错误,导致构建失败等我自己的build.xml

<?xml version="1.0" encoding="utf-8"?>

<project name="ant-jmeter-test" default="run" basedir="." >
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>

<target name="run">
<antcall target="clear1" />
<antcall target="test1" />
<antcall target="report1" />
<antcall target="sendmail1" />
</target>

<target name="test1">
<echo message="开始执行jmeter脚本..."></echo>
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<!--Jmeter家目录和放置jtl文件路径-->
<jmeter jmeterhome="D:\tool\jmeter\apache-jmeter-5.4.3" resultlog="D:\tool\jmeter\apache-jmeter-5.4.3\API_TEST\result\test2022.jtl">
<!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->
<testplans dir="D:\tool\jmeter\apache-jmeter-5.4.3\API_TEST\script" includes="*.jmx" />
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>

<path id="xslt.classpath">
<!--jmeter中lib路径-->
<fileset dir="D:\tool\jmeter\apache-jmeter-5.4.3\lib" includes="xalan*.jar"/>
<fileset dir="D:\tool\jmeter\apache-jmeter-5.4.3\lib" includes="serializer*.jar"/>
</path>

<target name="report1">
<echo message="开始转换执行结果..."></echo>
<tstamp> <format property="time" pattern="yyyy/MM/dd HH:mm" /></tstamp>
<!--in代表转换前,out代表转换后,style指明转换模板-->
<xslt classpathref="xslt.classpath"
force="true"
in="D:\tool\jmeter\apache-jmeter-5.4.3\API_TEST\result\test2022.jtl"
out="D:\tool\jmeter\apache-jmeter-5.4.3\API_TEST\html\test2022.html"
style="D:\tool\jmeter\apache-jmeter-5.4.3\extras\jmeter.results.shanhe.me.xsl">
<param name="titleReport" expression="测试报告"/>
<param name="dateReport" expression="${time}"/>
</xslt>
<!-- jmeter-results-detail-report_21 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝-->
<copy todir="D:\tool\jmeter\apache-jmeter-5.4.3\API_TEST\html">
<fileset dir="D:\tool\jmeter\apache-jmeter-5.4.3\extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>

<target name="clear1">
<!-- 每次执行前先删除清空jtl和html文件夹,释放空间 -->
<echo message="释放空间,清空jtl和html文件夹中 ..."></echo>
<delete dir="D:\tool\jmeter\apache-jmeter-5.4.3\API_TEST\result" />
<delete dir="D:\tool\jmeter\apache-jmeter-5.4.3\API_TEST\html" />
<!-- 删除单个文件-->
<delete file="D:\gqapp\apache-jmeter\gqcesspace\1.rar" />
<sleep seconds="2"/>
<echo message="释放完成 ..."></echo>
</target>

<target name="sendmail1">
<!--把报告进行压缩打包-->
<jar jarfile="D:\tool\jmeter\apache-jmeter-5.4.3\API_TEST\1.rar" basedir="D:\tool\jmeter\apache-jmeter-5.4.3\API_TEST\html"/>
<!--把文件贴到邮件正文-->
<loadfile property="html" srcFile="D:\tool\jmeter\apache-jmeter-5.4.3\API_TEST\html\test2022.html" encoding="UTF-8">
<filterchain>
<expandproperties />
</filterchain>
</loadfile>

<mail mailhost="smtp.qq.com"
mailport="25" subject="测试结果"
messagemimetype="text/html" tolist="602208564@qq.com"
user="602208564@qq.com" password="qarsfhcnmmmtbcfb">
<from address="602208564@qq.com"/>
<!--发送附件-->
<fileset dir="D:\tool\jmeter\apache-jmeter-5.4.3\API_TEST\html">
<include name="1.rar"/>
</fileset>
<message>testing</message>
</mail>
</target>


</project>

 

3.build.xml配置好后,在dos窗口进入build.xml文件所在的路径下,输入ant

查看构建是否成功,对于测试报告路径下是否有测试报告生成,及邮件等

 

4.jenkins上新建项目,主要配置好ant、jdk等信息

注意:如果配置邮件通知、端口问题我自己配的是163邮箱

 

 

也可以配置触发器等配置好后,直接构建,查看构建结果、邮件通知等信息

 

邮件模板可以自己配置

 

标签:xml,ant,build,apache,jenkins,jmeter
来源: https://www.cnblogs.com/stone2019/p/15860482.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有