接口测试持续集成
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口测试持续集成相关的知识,希望对你有一定的参考价值。
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.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代码
- 1default 所以需要修改Jmeter的一个配置
Java代码
再来就是配置我们的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>
- 1default 所以需要修改Jmeter的一个配置
以上是关于接口测试持续集成的主要内容,如果未能解决你的问题,请参考以下文章
Python接口测试实战5(上) - Git及Jenkins持续集成