前言:

本来想多分几部分,但是都是抽时间总结的,也就不润色了,直接三板斧,结束。

特别提示:

知识是用来分享的,但是也要尊重作者的权益,转载请注明出处,未经本人允许不可用于商业目的。

Ant构建文件配置

打开build.xml文件,使其处于编辑状态,输入如下内容:

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

<project name="test" default="report" basedir=".">

    <tstamp> 

        <!--format property="time" pattern="yyyyMMddkkmm" /-->

        <format property="date" pattern="yyyy/MM/dd kk:mm:ss"/>

  <!--kk是24小时制,KK是12小时制-->       

    </tstamp>

    <!-- 需要改成自己本地的 Jmeter 目录--> 

    <property name="jmeter.home" value="D:/apache-jmeter-2.13" />

    <property name="report.title" value="Jmeter_接口自动化测试结果"/>   

    <!-- jmeter生成jtl格式的结果报告的路径--> 

    <property name="jmeter.result.jtl.dir" value="D:/Jenkins_WorkSpace/result/jtl" /> 

    <!-- jmeter生成html格式的结果报告的路径--> 

    <property name="jmeter.result.html.dir" value="D:/Jenkins_WorkSpace/result/html" /> 

    <!-- 生成的报告的前缀-->

    <!-- 生成的报告的名称-->    

    <property name="ReportName" value="DetailsReport" />

    <property name="ReportName2" value="SummaryReport" />

    <!--jtl的value值是D:\Jenkins\jmxReport\jtl\TestReport+yyyyMMddhhmm.jtl-->   

    <!--html的value值是D:\Jenkins\jmxReport\html\TestReport+yyyyMMddhhmm.html-->   

    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}.jtl" /> 

    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.html" />

    <property name="jmeter.result.htmlName2" value="${jmeter.result.html.dir}/${ReportName2}.html" />

        <!-- 工程引用包 -->   

        <property name="lib.home" value="D:/apache-jmeter-2.13/xjar"/>

        <!--jmx文件存放位置-->

        <property name="jmxFile" value="D:/Jenkins_WorkSpace/jmx"/>

    <!--项目初始化设置-->

      <target name="init" description="init" >

      <!--删除jtl文件夹下生成的所有文件及文件夹包括空目录,但不删除根目录-->

         <delete verbose="true" includeemptydirs="true" >

            <fileset dir="${jmeter.result.jtl.dir}" >

                  <include name="**/*" />

            </fileset>

         </delete>

         <!--删除html文件夹下生成的所有文件及文件夹包括空目录,但不删除根目录-->

         <delete>

            <fileset dir="${jmeter.result.html.dir}">

                 <include name="**/*"/>

            </fileset>

         </delete>

         <!--<delete dir="${classes.home}"/>

         <mkdir dir="${classes.home}"/>-->

      </target>

    <target name="test" depends="init"> 

        <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" /> 

        <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}"> 

            <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本--> 

            <testplans dir="${jmxFile}" includes="*.jmx" />

            <!--声明生成的jtl文件是xml格式,否则会报错 -->

            <property name="jmeter.save.saveservice.output_format" value="xml"/>           

        </jmeter> 

    </target> 

    <path id="xslt.classpath">

        <fileset dir="${lib.home}" includes="xalan*.jar"/>    

        <fileset dir="${lib.home}" includes="serializer*.jar"/>

    </path>

    <target name="report" depends="test" >  

        <xslt

              classpathref="xslt.classpath"

              force="true"

              in="${jmeter.result.jtlName}" 

              out="${jmeter.result.htmlName}" 

              style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl">

              <param name="titleReport" expression="${report.title}"/>

              <param name="dateReport" expression="${date}"/>             

         </xslt>

         <xslt

              classpathref="xslt.classpath"

              force="true"

              in="${jmeter.result.jtlName}" 

              out="${jmeter.result.htmlName2}"

              style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">

              <param name="titleReport" expression="${report.title}"/>

              <param name="dateReport" expression="${date}"/>             

         </xslt>

        <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 --> 

        <copy todir="${jmeter.result.html.dir}"> 

            <fileset dir="${jmeter.home}/extras"> 

                <include name="collapse.png" /> 

                <include name="expand.png" /> 

            </fileset> 

        </copy> 

    </target>

</project>  

相关配置完成后,可在build.xml所在文件夹下执行cmd,并输入ant验证构建是否成功,如出现下图所示结果代表构建成功:

Jenkins配置:

环境配置:

在浏览器中输入http://Jenkins_IP:端口号,登录到Jenkins界面,如下图所示:

点击“系统管理”-“Global Tool Configuration”,在该界面中配置Ant路径和Jdk路径(取消自动安装),如下图所示:

配置完成后点击“save”进行保存。

插件配置:

保存成功后返回系统配置,点击“插件管理”,安装“Ant Plugin”、“HTML Publisher plugin”、Startup TriggerGroovy plugin和“Performance Plugin”等插件,安装完成后在已安装中可以查到相关插件,如下图所示:(注:在未联网的系统内部署时,可以将其他部署好的Jenkins中plugin文件夹拷贝到未联网系统中)

配置完成后点击“Jenkins”跳转到初始化界面。

Job创建

在初始化界面点击“新建”,在跳转后的界面中输入item name,选择“构建一个自由风格的软件项目”,点击“OK”,如下图所示:

在调转后界面的构建中添加“Invoke Ant”插件,如下图所示:

添加完成后,配置相关参数信息,如下图所示:(注如果Invoke Ant未完全显示,请点击其下方的高级按钮)

在构建后操作中添加“Publish HTML reports”,如下图所示:

添加完成后,配置相关参数,如下图所示:

配置完成后点击“保存”按钮,创建job成功。

解决HTML展示异常

由于Jenkins的一个安全策略,默认会设置为一个非常严格的权限集,以防止Jenkins用户在workspace、/userContent、archived artifacts中受到恶意HTML/JS文件的攻击。因此在“HTML Report”展示HTML报告时候无法正常显示,因此我们要进行一下处理,详细描述可参考网络博客:解决 Jenkins 中无法展示 HTML 样式的问题,这里采用一劳永逸的方式。

继续创建新的job,命名为:“HTML展示脚本”,在配置界面的“构建触发器”中勾选“Build when job nodes start”,不设置任何参数,如下图所示:

在“构建”中增加“Execute system Groovy script”,如下图所示:

增加完成后,在“Groovy Script”中输入如下脚本:

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

如下图所示:

点击保存按钮,将新建的job进行保存。当下次Jenkins重启后也不用担心HTML的问题了,由于没有研究Jenkins安全策略问题,而且使用的HTML模板使用较多的js等,此处直接放开所有权限了。

自动化测试执行:

本次只采用手动构建方式,具体操作如下:

在job项目界面,点击“立即构建”执行构建操作,执行完成后查看相关执行结果报告,如下图所示:

查看结果报告可以点击“HTML Report”,展示结果如下:

概要报告:

详细报告:

备注:本分享是基于实际工作的经验总结而成,相关插件等资源来自网络,如遇到部署等问题,请先根据部署环境中使用的软件版本进行部署,先关版本亲测未发现问题,希望对读者有所帮助。

Jmeter+Ant+Jenkins接口自动化测试(三)_Ant配置及Jenkins持续集成的更多相关文章

  1. 使用jmeter+ant进行接口自动化测试(数据驱动)之二:利用apache-ant执行测试用例并生成HTML格式测试报告

    在 使用jmeter+ant进行接口自动化测试(数据驱动)之一 介绍了如何使用csv文件来批量管理接口 本次接着介绍如何利用apache-ant执行测试用例并生成HTML格式测试报告 ①下载安装 ap ...

  2. JMeter接口测试-JMeter+ant实现接口自动化测试

    前言 小伙伴们,用python做接口自动化是不是写代码比较繁琐,而且没有python代码基础的小伙伴根本无从下手对吧!今天我们来学习一下如何使用JMeter工具实现接口自动化测试. 1.安装JDK,配 ...

  3. 使用jmeter+ant进行接口自动化测试(数据驱动)之一:设计jmeter脚本

    最近在做接口测试,因为公司有使用jmeter做接口测试的相关培训资料,所以还是先选择使用jmeter来批量管理接口,进行自动化测试.话不多说,进入正题: 1.使用csv文件保存接口测试用例,方便后期对 ...

  4. ant+jmeter+jenkins接口自动化测试一

    [Jmeter篇]jmeter+Ant+Jenkins接口自动化测试集成(一) 橙子探索测试发表于橙子探索测试订阅 90 一.简介 1.什么是ant? ant是构建工具,把代码从某个地方拿来,编译,再 ...

  5. ant +jmeter+jenkins接口自动化测试二

    [Jmeter篇]Jmeter+Ant+Jenkins接口自动化测试集成之半路逆转(二) 橙子探索测试发表于橙子探索测试订阅 72 [Jmeter篇]jmeter+Ant+Jenkins接口自动化测试 ...

  6. Postman+Newman+Git+Jenkins接口自动化测试

    一.Postman  1.创建Collection,在Collection中创建接口请求,如下图所示. 2.编写接口对应的断言Test和Pre-request Script,如下图所示. 3.配置接口 ...

  7. Jmeter+ant+jenkins接口自动化测试 平台搭建(一)

    平台简介 一个完整的接口自动化测试平台需要支持接口的自动执行,自动生成测试报告,以及持续集成.Jmeter 支持接口的测试,Ant 支持自动构建,而 Jenkins 支持持续集成,所以三者组合在一起可 ...

  8. Jmeter+Ant+Jenkins接口自动化测试框架搭建

    前言 软件开发的V模型大家都不陌生,其中测试阶段分为单元测试→功能测试→系统测试→验收测试.其中单元测试一般由开发同学们自己完成,大部分测试具体实施(这里不包括用例设计)是从单体功能测试开始着手的. ...

  9. jmeter+ant+jenkins接口自动化测试框架

    大致思路:Jmeter可以做接口测试,也能做压力测试,而且是开源软件:Ant是基于Java的构建工具,完成脚本执行并收集结果生成报告,可以跨平台,Jenkins是持续集成工具.将这三者结合起来可以搭建 ...

  10. jmeter+ant+jenkins 接口自动化测试持续集成(送源码)

     9.1  安装和介绍 JMeter 安装文件路径:https://pan.baidu.com/s/1kVJdnuv. JMeter 是轻量级的开源且稳定的自动化测试工具. 思路:在接口说明文档中整理 ...

随机推荐

  1. 还堵在高速路上吗?带你进入Scratch世界带你飞

    国庆假期高速路的风景 国庆假期正式启动人从众模式,无论是高速公路还是景区,不管是去程还是回程,每一次都堪称经典. 一些网友在经历漫长的拥堵后 哭笑不得地表示 "假期都在堵车中度过了" ...

  2. 开源EFCore 对比实体与实际数据库结构的工具-GZY.EFCoreCompare

    前言 GZY.EFCoreCompare 是一个用于 对比数据库结构和 EF Core 代码中的 DbContext 的库. 它基于 EF Core 的 Scaffolding 机制,生成 Datab ...

  3. element-ui中el-table多层数组渲染问题

    tableData: [ { name: '国家出资人', list: [ { name: '2011', value: '0' }, { name: '2012', value: '0' }, { ...

  4. 【COM3D2Mod 制作教程(7)】实战!制作衣服部分(上)

    [COM3D2Mod 制作教程(7)]实战!制作衣服部分(上) 教程介绍 隔了 N 个月终于迎来了第二期的 Mod 教程部分,这一期我们将开始制作人物的衣服部分. 因为体型适配的原因,衣服部分要比身体 ...

  5. gdfs: 基于Fuse的GoogleDrive客户端开源代码分析

    背景 在学习fuse的过程中,首先从libfuse中的demo开始学习,以了解用户态与内核态通信的框架.而此处的demo只聚焦于最基本的通信,用户态文件系统的实现只是一个最简单的read only文件 ...

  6. MyBatisPlus - [07] Q&A

    题记部分 001 || Public Key Retrieval is not allowed 通常出现在使用JDBC连接数据库时,特别时在尝试通过SSL/TLS加密连接到MySQL或MariaDB数 ...

  7. ABC393D题解

    大概评级:黄. 签到题. 显然,我们需要找到所有的 \(1\) 的位置,然后看其它的 \(1\) 靠拢过来需要几次操作,然后对于每个位置的答案取个最小值就好了. 直接暴力肯定是不行的,考虑优化计算其它 ...

  8. 重生之数据结构与算法----队列&栈

    简介 上文说到,数据结构只有两种.其它的数据结构都是它的整花活. 栈 栈只能在表的一端(称为栈顶)进行插入和删除操作,遵循 "后进先出"(Last In First Out,LIF ...

  9. 使用 Trae 辅助开发一个网页文本高亮插件

    项目概述 本插件是一个用于在网页上高亮显示选中文本的工具,支持多种颜色选择.高亮复制和删除等功能.插件基于 Edge 扩展测试开发. 目前只大致开发了内容交互脚本和插件弹出页,后台管理页暂未开发. 项 ...

  10. 【Azure Fabric Service】分享使用Visual Studio 2022发布中国区Service Fabric服务应用的办法

    问题描述 使用Visual Studio 2022如何发布Service Fabric到中国区云服务呢? 因为使用VS2022中的插件无法创建Service Fabric Cluster服务. 那么, ...