Jenkins+Ant+Jmeter搭建持續集成的接口測試平臺(轉)

一、什麼是接口測試

  接口測試是測試系統組件間接口的一種測試。接口測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的交互點。測試的重點是要檢查數據的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關係等。

  接口測試適用於爲其他系統提供服務的底層框架系統和中心服務系統,主要測試這些系統對外部提供的接口,驗證其正確性和穩定性。接口測試同樣適用於一個上層系統中的服務層接口,越往上層,其測試的難度越大。

  接口測試實施在多系統多平臺的構架下,有着極爲高效的成本收益比,接口測試天生爲高複雜性的平臺帶來高效的缺陷監測和質量監督能力。平臺越複雜,系統越龐大,接口測試的效果越明顯。

  基於接口測試的重要性,以及它比較容易自動化的特性,通過持續集成的接口監控能夠及時的發現項目中存在的問題,這對持續運營的項目來說,非常重要。

  二、接口測試的流程

  1、 項目啓動後,測試人員要儘早找到開發人員拿到接口測試文檔

  2、 獲取接口測試文檔後,就可以進行接口用例的編寫和調試

  3、 接口用例編寫調試完成後,部署到持續集成的測試環境中,

  4、 設定腳本運行頻率,告警方式等基本參數,進行接口的日常監控

  5、 每日進行接口腳本的維護更新,接口異常的處理

  三、編寫接口測試腳本

  大部分性能工具都可以用來進行接口測試,jmeter就是一個好用的性能測試工具, 他也同樣可以用來進行接口測試,jmeter比較適用於CGI、webservice、DB等類型的接口測試。下面以websevice api接口爲例說明如何編寫接口測試用例(本文側重於接口測試平臺的搭建,對於具體工具是使用只進行簡單介紹,對於工具不瞭解的,可以自行百度):

  jimter接口腳本的編寫步驟如下:

  1、 編寫接口請求

  通過錄制或者查看接口文檔,編寫接口請求,進行調試,確保接口調試通過

  對於http的請求來說,就是正確的填寫域名,查詢字符串,查詢參數等信息

  2、 對接口的返回結果進行斷言

  斷言的目的是對輸出結果進行判斷,確認接口測試結果是否有異常

  這些工作完成後,接口測試腳本就準備好了

  四、生成接口測試報告

  接口測試腳本運行後生成的是JTL(xml)格式的文件,這些文件不具備可讀性,因此我們要把他轉化爲可以閱讀的html格式報告。

  轉化的步驟如下:

  1、 安裝ant工具

  Ant是一個功能強大的打包編譯工具。我們使用他的目的是將xml文件轉化爲html格式的文件

  2、 找到jmeter自帶的xsl文件

   Xml文件要轉化爲html文件,需要編寫xsl文件,實際上,jmeter已經自帶了xsl文件,如果你不想自己定義格式的話,可以直接使用自帶的格 式,這樣可以省不少事情。這些文件的位置位於jmeter的extras文件夾下,只需要簡單修改一些文件路徑配置就可以正常使用。

  3、 編寫ant的buildfile文件

  Ant自帶了把XML轉化爲html的lib庫,因此,這個轉化也是相當簡單的,示例如下:

<target name="xslt-report" depends="_message_xalan">

<tstamp><format property="report.datestamp" pattern="yyyy/MM/dd HH:mm"/></tstamp>

<xslt

classpathref="xslt.classpath"

force="true"

in="${resultpath}/${test}-${TODAY}.jtl"

out="${resultpath}/${test}-${TODAY}.html"

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

<param name="showData" expression="${show-data}"/>

<param name="titleReport" expression="${report.title}"/>

<param name="dateReport" expression="${report.datestamp}"/>

</xslt>

</target>

  完整的buildfile文件,請自行百度

  4、 運行ant命令,生成html文件

  Cmd運行ant –buildfile xsl文件,你就可以生成html報告了

  生成的測試報告如下:

  五、部署到持續集成平臺

  部署到持續集成平臺可以實現腳本的定時運行,這是接口測試的核心。

  這裏我們選用了jenkins,,jenkins是一個強大的持續集成系統,使用起來也很簡單。

  使用步驟如下:

  1、 安裝jenkins

  Jenkins的安裝是非常簡單的

  注意:請將jenkins安裝到一個空間比較大的系統盤中。因爲jenkins運行起來,生成的文件比較佔空間。

  2、 安裝完成後,配置一個項目



 3、 配置item參數

  舊的構建保存了你在一次構建中的所有臨時文件,如果構建沒有保留的必要,就勾選丟棄舊的構建,同時設置保持構建天使和保持構建的最大個數兩個參數。

  注意:三個設置必須同時設置,否則無效

  4、 設置定時運行間隔,這裏,設置間隔時間爲10分鐘運行一次

  5、設置invoke ant

  通過設置invoke ant,就可以調用ant,執行打包過程。在這裏,也就是執行生成測試報告的步驟

  通過以上步驟,我們就成功搭建了一個簡單的持續集成的接口測試平臺,當然,你也可以根據自己的需要添加其他更強大的功能

 

jmeter可以通過ant自動執行測試腳本,然後集成到jenkins上,併發送測試報告

1、下載安裝ant

2、將jmeter安裝包extras文件夾裏ant-jemter-1.1.1.jar 複製到ant\lib下

3、進入到jmeter安裝包extras文件夾,ant後測試下能否生成test.jtl和test.html

4、將jmeter安裝包extras文件夾下build.xml和collapse.png、expand.png、jmeter-results-detail-report_21.xsl複製到bin目錄下

5、修改build.xml配置路徑

 

6、jenkins上安裝Performance plugin後,新建job

 

執行構建後就可啓動jmeter的測試腳本並在jenkins上看大生成的測試報告

 

 

 

實際配置

對應的目錄

設置的主目錄

 

絕對路徑

 

build.xml 內容

 

複製代碼

<?xml version="1.0" encoding="utf-8"?><project name="JmeterTest" default="all" basedir=".">
    <tstamp>
        <format property="time" pattern="yyyyMMddhhmm" />
    </tstamp>
    <!-- 需要改成自己本地的 Jmeter 目錄-->
    <property name="jmeter.home" value="/usr/local/JmeterTest/apache-jmeter-2.13" />
    <!-- jmeter生成jtl格式的結果報告的路徑-->
        <!-- <property name="jmeter.result.jtl.dir" value="/usr/local/JmeterTest/results/jtl" />   -->
        <property name="jmeter.result.jtl.dir" value="/var/lib/jenkins/workspace/Jmeter/results/jtl" />
    <!-- jmeter生成html格式的結果報告的路徑-->
    <property name="jmeter.result.html.dir" value="/usr/local/JmeterTest/results/html" />
    <!-- 生成的報告的前綴 -->
    <property name="ReportName" value="TestReport" />
    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
    <!-- 接收測試報告的郵箱 -->
    <property name="mail_to" value="[email protected]" />
    <!-- 電腦地址 -->
    <property name="ComputerName" value="bogon" />
    <target name="all">
        <antcall target="test" />
        <antcall target="report" />
    </target>
    <target name="test">
        <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
        <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
            <!-- 聲明要運行的腳本。"*.jmx"指包含此目錄下的所有jmeter腳本 -->
            <testplans dir="/usr/local/JmeterTest/script" includes="*.jmx" />
        </jmeter>
    </target>
    <target name="report">
        <xslt in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" 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>

複製代碼

 執行構建後就可啓動jmeter的測試腳本並在jenkins上看大生成的測試報告


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章