前言:

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

特别提示:

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

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. mybatis mysql count(*) 返回结果为null的解决

    具体错误信息: org.apache.ibatis.binding.BindingException: Mapper method 'com.xx.xx.xx.xx.xx.getCount attem ...

  2. Springboot - [06] yaml语法讲解

    Yaml是一种标记语言,Yaml也不是一种标记语言. 一.yaml写法示例 application.yaml # 普通的key-value name: harley server.port: 8081 ...

  3. 「六」Goaccess实现可视化

    下载 apt install goaccess 使用goaccess进行监控 LANG="en_US.UTF-8" bash -c 'goaccess logs/access.lo ...

  4. form-create-designer中怎么扩展自定义组件

    form-create-designer中怎么扩展自定义组件 form-create-designer 是基于 @form-create/element-ui实现的表单设计器组件.可以通过拖拽的方式快 ...

  5. kafka开启kerberos认证详细步骤

    一.kerberos安装部署 kerberos的基本原理不做过多介绍了,可自行查阅:本文主要介绍kerberos的安装及使用;使用到的软件版本:系统:Red Hat Enterprise Linux ...

  6. javascript 陀螺仪加摄像头可以玩出AR效果

    原文链接:https://blog.jijian.link/2020-09-08/js-ar/ 重要事情说三遍 此文章中的API接口,必须放在 https 协议下测试!浏览器APP必须开启摄像头权限! ...

  7. Tiki靶机练习

    Scan 先arp-scan -l扫描附件主机ip nmap -sS -sV -n -T4 -p- 192.168.93.132 Starting Nmap 7.94SVN ( https://nma ...

  8. 什么是集群&集群的分类

    集群(Cluster)    计算机集群简称集群,是一种计算机系统,它通过一组松散集成的计算机软件(和/或)硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台计算机.集群系统中 ...

  9. Obsidian 笔记一键转换发布为 Jekyll 博客

    Obsidian 是一款功能强大且灵活的知识管理和笔记软件,与 Jekyll 这一轻量级静态博客框架的结合,既能保留 Obsidian 的网状知识关联优势,又能借助 Jekyll 的高效编译能力快速生 ...

  10. MySQL基础架构-架构详解

    mysql基础架构图 架构详解 连接器部分 整体功能 建立连接 维持管理连接 校验用户名密码,查询权限 最佳实践 不要在命令行客户端中明文输入密码 -p 中不要使用明文密码 修改权限,需要重新建立连接 ...