前言:

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

特别提示:

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

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. extern和static

    extern和static extern和static两者之间是有一种相克的关系:用了extern的不能用static,用了static的不能用extern, extern是声明让别的文件中能够使用, ...

  2. JavaScript 之 高级程序设计 基础篇 (一)

    导读 此篇文章为作者拜读JavaScrpit 第四版(红宝石)的笔记内容.适用于有经验的程序员阅读:作者 java开发出身.在之前前后端不分离的时代 使用esayUI JQuery的时代 经常写 js ...

  3. 不到24小时,AOne让全员用上DeepSeek的秘诀是……

    DeepSeek引发新一轮AI浪潮,面对企业数字化智能升级与数据安全红线的急迫需求,IT负责人的压力山大!如何在24小时内实现全员AI落地,同时为后续安全部署铺平道路? Step1:一键开启全员智能时 ...

  4. SignalR 外部调用自定义Hub类的方法,Clients为null

    这是因为外部调用的类的对象和你连接的Hub类的对象,这两个对象 不!一!样! 解决方法 在自定义的Hub类中,注入IHubContext对象,然后在方法中调用IHubContext对象来向前端推送数据 ...

  5. Flink - [07] 容错机制

    题记部分 一.一致性检查点   Flink故障恢复机制的核心,就是应用状态的一致性检查点.有状态流应用的一致性检查点,其实就是所有任务的状态,在某个时间点的一份拷贝(一份快照):这个时间点,应该是所有 ...

  6. Kafka - 分布式消息队列

    Kafka简介 Kafka原理 Kafka使用 Kafka简介 概念 基于发布/订阅的分布式消息系统 由Linkedin开发,用Scala语言编写 特性 消息持久化:采用时间复杂度O(1)的磁盘存储结 ...

  7. HDP集群部署

    一.环境准备 centos7 安装和系统环境处理 1)运行初始化脚本 !/bin/bash ------------------------------------- 系统环境初始化脚本 本脚本仅支持 ...

  8. 如何学好.net core?

    https://www.zhihu.com/question/348740859/answer/842656513

  9. python 二级 第三方库

    爬虫:rs 1.requests:链接访问 2.scrapy:系统构建.数据挖掘.网络监控.自动化 数据分析方向 nsp 1.numpy :数组 .科学计算.c语言编写 2.scipy:科学.数学.工 ...

  10. 使用C#创建一个MCP客户端

    前言 网上使用Python创建一个MCP客户端的教程已经有很多了,而使用C#创建一个MCP客户端的教程还很少. 为什么要创建一个MCP客户端呢? 创建了一个MCP客户端之后,你就可以使用别人写好的一些 ...