自动生成html_服务搭建篇二·Jenkins+Jmeter+Gitlab持续集成实现接口流程自动化

今天分享服务搭建第二篇: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

83f7b8a9cd5b58dbbc10fd3ba337d217.png

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

126ff7795aa21c8cc76d39f8c1263e82.png

注:

  1. build.xml <?xml version="1.0" encoding="UTF-8"?>前面不要有任何其他字符,如空格、回车、换行,否则会报错!
  2. 需要在build.xml目录中运行

二、Jenkins 服务配置

在上一篇分享中,Jenkins已经安装完毕,并且已经创建好了账户,下面将详细介绍服务的相关配置。

 Username:xinghai
 Password:123456
  • 全局配置

1、配置 jdk 和 ant 、Gitlab //注意路径,否者不生效(java的路径是/usr/java下)

Manage Jenkins -->Global Tool Configuration // Jdk & Ant

f61f8cd7fba2134ffe5b3c0bd6636af8.png

Manage Jenkins -->Configure System // Gitlab

49e49b907be2f5a6843c584b78e62c56.png

Access Token ID (kv_c8_spuWvaYt614D_A)

Gitlab Account Setting : 登录Gitlab的账号密码

2、显示中文

1)在插件管理中(Manage Plugins)搜索 “Local”并安装

2)Manage Jenkins-->Configure System,找到Local 默认语言输入:zh_CN

4710282b20cf2acd5f8ceb4116a8ac7b.png

3、邮件配置

参照《篇四、Jenkins设置Gitlab邮件服务详解》


  • Job配置

一、新建 Job 任务

1、Jmeter + Ant (未集成Gitlab)

注:1)选择Ant Version,2)Build File 输入build.xml文件的位置 3)保存后进行构建

0378bfda68a1bf7800a68958c638f8f5.png

2、Jmeter + Ant + Gitlab

4aafe62b88ec2a3ece98002ba65cd8b9.png

29d88a3c58299ca09a5fdcbfd96dbff3.png

32de01f3f60ee0dc161d52039743cc79.png

5d38bec9ac3e6aebebe753c1ae873ddc.png

857eb8a4c490cf3bad4217ab2af5c3e8.png

邮件配置 具体参照《四、Jenkins设置Gitlab邮件服务详解》

构建触发器:

Build periodically 定时构建

5a3de2474eed87a8ae80e5320a4fffbc.png

构建触发器可以根据自己的需求选择,由图看到有四种类型:

(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

参考

  1. ^网上均可下载,也可私信我获取!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值