一、什么是接口測試?
接口測試是測試系統組件間接口的一種測試。接口測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的交互點。測試的重點是要檢查數據的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關系等。
接口測試適用於為其他系統提供服務的底層框架系統和中心服務系統,主要測試這些系統對外部提供的接口,驗證其正確性和穩定性。接口測試同樣適用於一個上層系統中的服務層接口,越往上層,其測試的難度越大。
接口測試實施在多系統多平台的構架下,有着極為高效的成本收益比,接口測試天生為高復雜性的平台帶來高效的缺陷監測和質量監督能力。平台越復雜,系統越龐大,接口測試的效果越明顯。
基於接口測試的重要性,以及它比較容易自動化的特性,通過持續集成的接口監控能夠及時的發現項目中存在的問題,這對持續運營的項目來說,非常重要。
二、接口測試的流程
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,執行打包過程。在這里,也就是執行生成測試報告的步驟
通過以上步驟,我們就成功搭建了一個簡單的持續集成的接口測試平台,當然,你也可以根據自己的需要添加其他更強大的功能