接口测试持续集成

FIDDER+ANT+JENKINS+JMETER+SVN+tomcat接口测试集成

操作流程:

1.测试人员通过FIDDER过滤抓取接口调用信息,导出成jmx文件。(jmeter支持命令行方式调用jmx)

感谢黑夜小怪的分享(飞测上有DLL供下载)

2.jmx在jmeter上做修改后,增加线程组,断言,结果树。保存上传SVN指定位置。

3.JKENINS构建活动,使用ant 批量执行jmx脚本,并把报告转换成html格式。

4.tomcat添加虚拟主机,文件方式浏览报告。

一.FIDDER导出JMX。

2.生成报告

这个时候,自然而然地想到了万能的ant,希望它能有相应的jmeter task。

哎,哎,查了一下,还真有,爽歪歪啊。

下面简单说明一下,如果使用:

① 首先,为了能够在ant中使用jmeter task,必须将“ant-jmeter-1.1.1.jar”这个jar包放到ant的classpath中去。这个jar包位置 jmeter的安装目录下的 extras 目录中。

PS:可直接将这个jar拷贝至ant安装目录下的lib目录中去就可以了。

② 编写脚本

Ant代码

    1. "1.0""UTF-8""ant-jmeter-test""all"".""time""yyyyMMddhhmm""jmeter.home""F:\xxxxx\Jmeter""jmeter.result.jtl.dir""F:\xxxxx\resultLog\jtl""jmeter.result.html.dir""F:\xxxxx\resultLog\html""ReportName""TestReport""jmeter.result.jtlName""${jmeter.result.jtl.dir}/${ReportName}${time}.jtl""jmeter.result.htmlName""${jmeter.result.html.dir}/${ReportName}${time}.html""all""test""report""test""jmeter""org.programmerplanet.ant.taskdefs.jmeter.JMeterTask""${jmeter.home}""${jmeter.result.jtlName}""*.jmx""D:\test_case_path""*.jmx""report""${jmeter.result.jtlName}""${jmeter.result.htmlName}""${jmeter.home}/extras/jmeter-results-detail-report_21.xsl""${jmeter.result.html.dir}""${jmeter.home}/extras""collapse.png""expand.png"

      ③ 生成的结果报告如下图

      ④ 下面说一个,我在使用过程中遇到的一个问题: 就是在执行 最后生成报告的 task 时,一直报下面这个错:

      TransformerException,  Content is not allowed in prolog.

      后来在ant-jmeter官网上查到了原因:

      Java代码

      1. 1default 所以需要修改Jmeter的一个配置

        Java代码

        1. 再来就是配置我们的Jeknins了。 

        这里就直接截个图了。配置实际上是很简单的东西的。

        这里执行的python脚本是为了进行重命名报告文件的用处。因为发送邮件的时候我们需要将html的结果显示在页面上。所以需要指定一个名字,但是我们又不想后续生成的报告都覆盖之前的报告。所以这里多了个重命名的操作。

        报告的模板的话,建议大家百度下。有个标准的模板挺好用的。

        (注意事项:修改build.xml文件JMX的目录为JENKINS活动更新之后的文件路径)

        build.xml:

        <?xml version="1.0"?>

        <project name="ant-jmeter-test" default="all" basedir=".">

        <tstamp>

        <format property="time" pattern="yyyyMMddhhmm" />

        </tstamp>

        <property name="jmeter.home" value="E:\apache-jmeter-2.12" />

        <property name="jmeter.result.jtl.dir" value=".\jtl" />

        <property name="jmeter.result.html.dir" value=".\html" />

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

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

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

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

        <target name="all">

        <antcall target="test" />

        <antcall target="report" />

        <antcall target="report2"/>

        </target>

        <target name="test">

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

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

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

        <testplans dir="D:\jenkinshome\jobs\卡门接口\workspace\jtestcase\" includes="*.jmx" />

        </jmeter>

        </target>

        <target name="report">

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

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

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

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

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

        <include name="collapse.png" />

        <include name="expand.png" />

        </fileset>

        </copy>

        </target>

        <target name="report2">

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

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

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

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

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

        <include name="collapse.png" />

        <include name="expand.png" />

        </fileset>

        </copy>

        </target>

        </project>

时间: 2024-12-12 07:19:04

接口测试持续集成的相关文章

jenkins+ant+jmeter搭建持续集成的接口测试平台

一.jemter接口脚本的编写步骤如下: 1. 编写接口请求 通过录制或者查看接口文档,编写接口请求,进行调试,确保接口调试通过,对于http的请求来说,就是正确的填写域名,查询字符串,查询参数等信息 2. 对接口的返回/输出结果进行判断,确认接口测试结果是否有异常 这些工作完成后,接口测试脚本就准备好了 二.生成接口测试报告 接口测试脚本运行后生成的是JTL(xml)格式的文件,这些文件不具备可读性,因此我们要把他转化为可以阅读的html格式报告.转化的步骤如下: 1. 安装ant工具 Ant

Jmeter接口测试自动化(持续集成)

Jmeter是压力测试.接口测试工具,Ant是基于Java的构建工具,具有跨平台的作用,jenkins是持续集成工具.将这三者结合起来可以搭建一套webservice接口测试的持续构建环境.   1.安装JDK,配置java环境变量(略过)   2.安装Jmeter,这里用到的版本是2.12(安装过程略过) 3.安装 ANT 3.1 下载安装 下载地址 http://ant.apache.org/bindownload.cgi,下载后解压到指定位置即可, 比如:D:/program files/

项目管理大法归档 - 思维导图、原型工具、接口测试、设计模式、版本管理、单元测试、持续集成、代码审查、Bug 跟踪

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 项目管理大法归档: 1.思维导图 如果你在想事情,而又不那么清晰明确,那么就用思维导图吧,它可以随着你的思维,很自然地记忆你思维的过程. 其实使用

接口测试执行工具Postman:模拟请求、用例执行、断言、批量运行用例、简单持续集成

一.接口测试-postman-模拟HTTP Requests 二.接口测试-postman-权限Authorization 三.接口测试-postman-断言Writting Test 四.接口测试-postman-测试集合.简单持续集成等

Python接口测试实战5(上) - Git及Jenkins持续集成

如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战2 - 使用Python发送请求 Python接口测试实战3(上)- Python操作数据库 Python接口测试实战3(下)- unittest测试框架 Python接口测试实战4(上) - 接口测试框架实战 Python接口测试实战4(下) - 框架完善:用例基类,用例标签,重新运行上次失败用例

某项目docker化持续集成日记

某项目docker化持续集成日记 要求将某项目的部署方式转变为docker的方式,并和jenkins相结合,主要组件有自身的两个服务(bill-api ,bill-backend)以及mysql.mq.redis 2016-04-18 先申请了2台机器,因为只是demo,所以提出要debian7 3.18内核的,配置的话2x2 4G或以上就可以 得到2台机器106和107 在jenkins节点机器上ping和telnet一下,访问正常 jenkins机器138 安装docker-1.9.1 1

持续集成探索和自动化测试技术研究

持续集成原本的意思是让开发每提交一次代码就自动化测试一次,如果自动化测试发现问题了,测试用例就会失败,开发就会马上发现这个失败,并修改代码. 要做到持续集成可有很多工作要做. 首先就是编译环节,要把所有编译的环节都自动化起来,开发每次提交代码都能进行自动编译: 编译完成后,就是静态代码检查的环节,通过静态代码检查的工具检查代码的问题,比如,数据库连接池没有释放,参数不匹配等. 静态代码检查完成后,就是单元测试了,单元测试用例一般是开发人员或者测试人员编写,或者开发和测试合作编写,保证的是开发内部

Gitlab CI 持续集成的完整实践

本着公司团队初创,又在空档期想搞点事情,搭建了私有Gitlab的契机,顺便把持续集成搭建起,实现了对Python服务端代码的单元测试.静态代码分析和接口测试的持续集成.总体架构如下: 执行过程: 开发提交代码后,自动触发gitlab-runner拉取executor镜像执行单元测试,单元测试代码中包含上传测试结果到x-utest测试平台: 单元测试通过后,gitlab-runner拉取sonar-scanner镜像执行静态代码分析,分析结果评论在commit中或保存于sonarqube: 静态代

基于Jenkins的开发测试全流程持续集成实践

今年一直在公司实践CI,本文将近半年来的一些实践总结一下,可能不太完善或优美,但的确初步解决了我目前所在项目组的一些痛点.当然这仅是一家之言也不够完整,后续还会深入实践和引入Kubernetes进行容器编排,以及通过阿里云K8S服务进行高效的云上托管,希望对各位童鞋有一点用. 一.持续集成全流程介绍 今年一直在开发我司的一个核心业务系统,一个还未上线的产品开发阶段,其中后端采用ASP.NET Core + 一系列开源组件开发微服务并且部署在Linux Docker中,前端采用React + Fl