Jmeter+Ant+Jenkins接口自动化测试(三)_Ant配置及Jenkins持续集成
前言:
本来想多分几部分,但是都是抽时间总结的,也就不润色了,直接三板斧,结束。
特别提示:
知识是用来分享的,但是也要尊重作者的权益,转载请注明出处,未经本人允许不可用于商业目的。
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 Trigger、Groovy 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持续集成的更多相关文章
- 使用jmeter+ant进行接口自动化测试(数据驱动)之二:利用apache-ant执行测试用例并生成HTML格式测试报告
在 使用jmeter+ant进行接口自动化测试(数据驱动)之一 介绍了如何使用csv文件来批量管理接口 本次接着介绍如何利用apache-ant执行测试用例并生成HTML格式测试报告 ①下载安装 ap ...
- JMeter接口测试-JMeter+ant实现接口自动化测试
前言 小伙伴们,用python做接口自动化是不是写代码比较繁琐,而且没有python代码基础的小伙伴根本无从下手对吧!今天我们来学习一下如何使用JMeter工具实现接口自动化测试. 1.安装JDK,配 ...
- 使用jmeter+ant进行接口自动化测试(数据驱动)之一:设计jmeter脚本
最近在做接口测试,因为公司有使用jmeter做接口测试的相关培训资料,所以还是先选择使用jmeter来批量管理接口,进行自动化测试.话不多说,进入正题: 1.使用csv文件保存接口测试用例,方便后期对 ...
- ant+jmeter+jenkins接口自动化测试一
[Jmeter篇]jmeter+Ant+Jenkins接口自动化测试集成(一) 橙子探索测试发表于橙子探索测试订阅 90 一.简介 1.什么是ant? ant是构建工具,把代码从某个地方拿来,编译,再 ...
- ant +jmeter+jenkins接口自动化测试二
[Jmeter篇]Jmeter+Ant+Jenkins接口自动化测试集成之半路逆转(二) 橙子探索测试发表于橙子探索测试订阅 72 [Jmeter篇]jmeter+Ant+Jenkins接口自动化测试 ...
- Postman+Newman+Git+Jenkins接口自动化测试
一.Postman 1.创建Collection,在Collection中创建接口请求,如下图所示. 2.编写接口对应的断言Test和Pre-request Script,如下图所示. 3.配置接口 ...
- Jmeter+ant+jenkins接口自动化测试 平台搭建(一)
平台简介 一个完整的接口自动化测试平台需要支持接口的自动执行,自动生成测试报告,以及持续集成.Jmeter 支持接口的测试,Ant 支持自动构建,而 Jenkins 支持持续集成,所以三者组合在一起可 ...
- Jmeter+Ant+Jenkins接口自动化测试框架搭建
前言 软件开发的V模型大家都不陌生,其中测试阶段分为单元测试→功能测试→系统测试→验收测试.其中单元测试一般由开发同学们自己完成,大部分测试具体实施(这里不包括用例设计)是从单体功能测试开始着手的. ...
- jmeter+ant+jenkins接口自动化测试框架
大致思路:Jmeter可以做接口测试,也能做压力测试,而且是开源软件:Ant是基于Java的构建工具,完成脚本执行并收集结果生成报告,可以跨平台,Jenkins是持续集成工具.将这三者结合起来可以搭建 ...
- jmeter+ant+jenkins 接口自动化测试持续集成(送源码)
9.1 安装和介绍 JMeter 安装文件路径:https://pan.baidu.com/s/1kVJdnuv. JMeter 是轻量级的开源且稳定的自动化测试工具. 思路:在接口说明文档中整理 ...
随机推荐
- extern和static
extern和static extern和static两者之间是有一种相克的关系:用了extern的不能用static,用了static的不能用extern, extern是声明让别的文件中能够使用, ...
- JavaScript 之 高级程序设计 基础篇 (一)
导读 此篇文章为作者拜读JavaScrpit 第四版(红宝石)的笔记内容.适用于有经验的程序员阅读:作者 java开发出身.在之前前后端不分离的时代 使用esayUI JQuery的时代 经常写 js ...
- 不到24小时,AOne让全员用上DeepSeek的秘诀是……
DeepSeek引发新一轮AI浪潮,面对企业数字化智能升级与数据安全红线的急迫需求,IT负责人的压力山大!如何在24小时内实现全员AI落地,同时为后续安全部署铺平道路? Step1:一键开启全员智能时 ...
- SignalR 外部调用自定义Hub类的方法,Clients为null
这是因为外部调用的类的对象和你连接的Hub类的对象,这两个对象 不!一!样! 解决方法 在自定义的Hub类中,注入IHubContext对象,然后在方法中调用IHubContext对象来向前端推送数据 ...
- Flink - [07] 容错机制
题记部分 一.一致性检查点 Flink故障恢复机制的核心,就是应用状态的一致性检查点.有状态流应用的一致性检查点,其实就是所有任务的状态,在某个时间点的一份拷贝(一份快照):这个时间点,应该是所有 ...
- Kafka - 分布式消息队列
Kafka简介 Kafka原理 Kafka使用 Kafka简介 概念 基于发布/订阅的分布式消息系统 由Linkedin开发,用Scala语言编写 特性 消息持久化:采用时间复杂度O(1)的磁盘存储结 ...
- HDP集群部署
一.环境准备 centos7 安装和系统环境处理 1)运行初始化脚本 !/bin/bash ------------------------------------- 系统环境初始化脚本 本脚本仅支持 ...
- 如何学好.net core?
https://www.zhihu.com/question/348740859/answer/842656513
- python 二级 第三方库
爬虫:rs 1.requests:链接访问 2.scrapy:系统构建.数据挖掘.网络监控.自动化 数据分析方向 nsp 1.numpy :数组 .科学计算.c语言编写 2.scipy:科学.数学.工 ...
- 使用C#创建一个MCP客户端
前言 网上使用Python创建一个MCP客户端的教程已经有很多了,而使用C#创建一个MCP客户端的教程还很少. 为什么要创建一个MCP客户端呢? 创建了一个MCP客户端之后,你就可以使用别人写好的一些 ...