今天分享服务搭建第二篇:Jenkins+Jmeter+Ant自动化集成(服务)
一、Ant 服务配置
1、配置报告模板和 ant build
确定脚本的目录,当前放在Jmeter 目录下
#cd /usr/local/apache-jmeter-3.1
#mkdir script
**cp 脚本到此目录,后续集成git可自动 clone 脚本到此目录**
1、将 Jmeter extras目录下的 ant-jmeter-1.1.1.jar 文件拷贝到ant安装目录下的lib文件夹中
2、配置ant 编译文件 build.xml ,linux下注意文件路径的写法为“/”
文件路径:/usr/local/apache-jmeter-3.1/extras
3、测试报告优化 : jmeter-results-shanhe-me.xsl[1] 拷贝到 jmeter 的 extras 目录中
注:jmeter-results-shanhe-me.xsl 文件名需要与build.xml中的名称保持一致
“此处附上xml文件内容!”
<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="/usr/local/apache-jmeter-3.1" />
<!-- 此配置是本地目录配置,注释掉 -->
<!-- jmeter生成jtl格式的结果报告的路径-->
<!--property name="jmeter.result.jtl.dir" value="/usr/local/apache-jmeter-3.1/reports/jtl" /-->
<!-- jmeter生成html格式的结果报告的路径-->
<!--property name="jmeter.result.html.dir" value="/usr/local/apache-jmeter-3.1/reports/html" /-->
<!-- 此配置用于Jenkins中自动发送报告的位置,位于Jenkins仓库下的Job目录 -->
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="/var/lib/jenkins/workspace/Interface_automation_gitlab/TestReports/jtl" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="/var/lib/jenkins/workspace/Interface_automation_gitlab/TestReports/html" />
<!-- 生成的报告的前缀-->
<property name="ReportName" value="Cobb_TestReport" />
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
<!-- 新增行-->
<!-- 输出生成的报告名称和存放路径-->
<echo message="${jmeter.result.jtlName}"/>
<echo message="${jmeter.result.htmlName}"/>
<echo message="${jmeter.result.html.dir}"/>
<!--新增行-->
<!--加载jar包,解决显示时间问题-->
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path>
<target name="run">
<antcall target="test" />
<antcall target="report" />
</target>
<target name="test">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->
<!--未使用Git前,可以指定目录拉取本地的脚本执行-->
<testplans dir="/usr/local/apache-jmeter-3.1/script/" includes="*.jmx" />
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path>
<target name="report">
<tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp>
<xslt
classpathref="xslt.classpath"
force="true"
in="${jmeter.result.jtlName}"
out="${jmeter.result.htmlName}"
style="${jmeter.home}/extras/jmeter-results-shanhe-me.xsl" />
<!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
</project>
4、设置测试输出报告要输出的内容
修改配置文件 /usr/local/apache-jmeter-3.1/bin/jmeter.properties 中
jmeter.save.saveservice.output_format=csv 为 jmeter.save.saveservice.output_format=xml
并去掉其中部分需要用到的注释行注释
5、运行 ant
注:
- build.xml <?xml version="1.0" encoding="UTF-8"?>前面不要有任何其他字符,如空格、回车、换行,否则会报错!
- 需要在build.xml目录中运行
二、Jenkins 服务配置
在上一篇分享中,Jenkins已经安装完毕,并且已经创建好了账户,下面将详细介绍服务的相关配置。
Username:xinghai
Password:123456
- 全局配置
1、配置 jdk 和 ant 、Gitlab //注意路径,否者不生效(java的路径是/usr/java下)
Manage Jenkins -->Global Tool Configuration // Jdk & Ant
Manage Jenkins -->Configure System // Gitlab
Access Token ID (kv_c8_spuWvaYt614D_A)
Gitlab Account Setting : 登录Gitlab的账号密码
2、显示中文
1)在插件管理中(Manage Plugins)搜索 “Local”并安装
2)Manage Jenkins-->Configure System,找到Local 默认语言输入:zh_CN
3、邮件配置
参照《篇四、Jenkins设置Gitlab邮件服务详解》
- Job配置
一、新建 Job 任务
1、Jmeter + Ant (未集成Gitlab)
注:1)选择Ant Version,2)Build File 输入build.xml文件的位置 3)保存后进行构建
2、Jmeter + Ant + Gitlab
邮件配置 具体参照《四、Jenkins设置Gitlab邮件服务详解》
构建触发器:
Build periodically 定时构建
构建触发器可以根据自己的需求选择,由图看到有四种类型:
(1)可使用脚本触发远程构建;
(2)其他job构建完成后触发当前job执行构建;
(3)定时周期性构建;
(4)hookplugin检测到源码的push操作就触发构建;
(5)定时检查代码分支是否有变化,如果有变化则执行一次构建。
我的目的是做接口测试自动化,每天定时跑任务并监控API功能是否正常,所以选择Build periodically(定期构建)。日程表一共五个参数:
从左到右分别代表:分 时 天 月 星期
第一个参数代表的是分钟minute,取值0~59;
第二个参数代表的是小时hour,取值0~23;
第三个参数代表的是天day,取值1~31;
第四个参数代表的是月month,取值1~12;
第五个参数代表的是星期week,取值0~7,0和7都代表星期天。
0 7 * * 1,3,5 表示每周一、周三、周五的7点00分执行一次,*代表所有。
第二阶段完成.......
美丽人生:服务搭建篇三·Jenkins+Jmeter+Gitlab持续集成实现接口流程自动化zhuanlan.zhihu.com参考
- ^网上均可下载,也可私信我获取!