首先介紹一下Ant。Apache Ant,是一個將軟件編譯、測試、部署等步驟聯繫在一塊兒加以自動化的一個工具,大多用於Java環境中的軟件開發。由Apache軟件基金會所提供。html
是的、仍是Apache家的產品,去其官網看看其簡介。express
Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications. Ant supplies a number of built-in tasks allowing to compile, assemble, test and run Java applications. Ant can also be used effectively to build non Java applications, for instance C or C++ applications. More generally, Ant can be used to pilot any type of process which can be described in terms of targets and tasks.apache
Ant is written in Java. Users of Ant can develop their own "antlibs" containing Ant tasks and types, and are offered a large number of ready-made commercial or open-source "antlibs".app
Ant is extremely flexible and does not impose coding conventions or directory layouts to the Java projects which adopt it as a build tool.工具
Software development projects looking for a solution combining build tool and dependency management can use Ant in combination with Apache Ivy.佈局
The Apache Ant project is part of the Apache Software Foundation.測試
Apache Ant是一個Java庫和命令行工具,其任務是將構建文件中描述的進程做爲相互依賴的目標和擴展點。Ant的主要用途是構建Java應用程序。Ant提供了許多內置任務,容許編譯,組裝,測試和運行Java應用程序。Ant還能夠有效地用於構建非Java應用程序,例如C或C ++應用程序。更通常地說,Ant能夠用來試驗任何類型的過程,能夠用目標和任務來描述。flex
Ant是用Java編寫的。Ant的用戶能夠開發本身的包含Ant任務和類型的「antlib」,並提供大量現成的商業或開源「antlibs」。ui
Ant很是靈活,而且不會將編碼約定或目錄佈局強加給採用它做爲構建工具的Java項目。編碼
尋找結合構建工具和依賴管理的解決方案的軟件開發項目能夠將Ant與Apache Ivy結合使用。
Apache Ant項目是Apache Software Foundation的一部分。
既然也是Apache家的產品,那麼也可以與Jmeter進行集成的。
來具體記一記Jmeter是如何與Ant進行集成的,然後又如何延伸至Jenkins的。
Ant的搭建環境再也不記錄。
其主要的仍是有關於xml配置文件的編輯。
一、首先將${jmeter_home}\extras\ant-jmeter-1.1.1.jar,copy至{ant_home}\lib下。
二、定義build.xml文件。
<?xml version="1.0" encoding="UTF-8"?> <project name="ant-jmeter-test" default="run" basedir="."> <taskdef resource="net/sf/antcontrib/antlib.xml" /> <!--須要改爲本身本地的 Jmeter 目錄--> <property name="jmeter.home" value="F:\jmeter\apache-jmeter-3.2"/> <property name="report.title" value="report"/> <!-- jmeter生成jtl格式的結果報告的路徑--> <property name="jmeter.result.jtl.dir" value="F:\jmeter-project\Demoproject\result\jtl"/> <!--jmeter生成html格式的結果報告的路徑--> <property name="jmeter.result.html.dir" value="F:\jmeter-project\Demoproject\result\html"/> <!-- 生成的報告的前綴 --> <property name="ReportName" value="TestReport"/> <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}.jtl"/> <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.html"/> <target name="run"> <antcall target="test"/> <antcall target="report"/> <!--antcall target="mail"/--> </target> <target name="test"> <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/> <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}"> <!--腳本存放路徑--> <testplans dir="F:\jmeter-project\Demoproject\Script" includes="*.jmx"/> <property name="jmeter.save.saveservice.output_format" value="xml"/> </jmeter> </target> <path id="xslt.classpath"> <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/> <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/> </path> <target name="report"> <tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm"/> </tstamp> <xslt classpathref="xslt.classpath" force="true" in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl"> <param name="dateReport" expression="${report.datestamp}"/> </xslt> <copy todir="${jmeter.result.html.dir}"> <fileset dir="${jmeter.home}/extras"> <include name="collapse.png"/> <include name="expand.png"/> </fileset> </copy> </target> <path id="lib_classpath"> <fileset dir="${basedir}/"> <include name="mail*.jar" /> <include name="activation*.jar" /> <include name="commons-email*.jar" /> <include name="ant-contrib*.jar" /> </fileset> </path> </project>
其實,在${jmeter_home}\extras\下有一個build.xml的文件,不過相對來講比較繁瑣,此處是一個參照網上大神的一個精簡版。須要更換的目錄,代碼段已經插入了相關注釋。
此處是構建
F:\jmeter-project\Demoproject\Script目錄下的所有.jmx文件,所以使用*.jmx
該目錄下存放兩個jmx腳本,一共是103個Sampler
三、進入存放build.xml的目錄,執行ant命令進行構建。
四、
能夠看到,已經構建成功,至日誌保存目錄進行查看。
這個是Ant構建生成的html報告。
固然報告的模板也是可以進行設計。該處使用的是${jmeter_home}\extras目錄下的jmeter-results-report_21.xsl。
OK、再集成至Jenkins又當如何集成呢?
上篇是經過Jmeter的NO-GUI方式直接以Jenkins進行執行dos命令行命令,構建。
使用Ant的話更爲簡潔。
所需插件:Invoke Ant
填寫參數Targets 、 Build File
Targets爲build.xml文件中的target name。
Bulid File爲build.xml文件在本地的路徑
至於構建後的操做:Publish HTML Reports主要是用做顯示報告。
OK,開始構建。
構建成功、至本地查看報告生成或者Jenkins面板均可以。
報告文件已生成。
咱們做爲測試人員,使用Ant無非就是批量執行jmeter的腳本文件,再使用Jenkins進行自動構建(定時自動構建),不就實現自動化了麼,平常的迴歸,冒煙等等皆可知足。