摘 要
目前基于Jmeter的接口自動化測試框架,大多只實現(xiàn)腳本維護和自動調(diào)度,無法與Testlink進行互通,實現(xiàn)測試方案與自動化實施流程連接,本文基于Testlink、Jmeter、Jenkins實現(xiàn):通過Testlink統(tǒng)一維護接口自動化測試用例,Jmeter編寫和運行測試腳本,Jenkins實現(xiàn)統(tǒng)一調(diào)度,并返回執(zhí)行結(jié)果和測試報告到Testlink。從而實現(xiàn)整個接口自動化測試框架,提高測試效率,降低后續(xù)維護成本。
關(guān)鍵詞: 自動化測試 Jmeter 接口 Testlink Jenkins
1、引言
為了實現(xiàn)項目快速開發(fā)-測試-交付,測試需要在項目開發(fā)過程介入,進行接口級別測試,并輸出自動化測試腳本,便于后續(xù)集成測試使用自動化測試保證每次BUG修復(fù),沒有引發(fā)新的問題,故需要研究一種自動化測試框架,滿足目前項目測試的需求
2、目標
1、 TestLink統(tǒng)一管理測試用例:因功能測試用例一直在Testlink上維護。
2、 前期已經(jīng)使用Jmeter進行接口測試,但是沒有統(tǒng)一的框架將方案、腳本、實施統(tǒng)一起來,故測試工具必須使用Jmeter。
3、 測試腳本統(tǒng)一維護,如:SVN
4、 腳本運行時,需要結(jié)合Testlink測試計劃分配用例,將自動化運行結(jié)果返回到Testlink。
5、 測試結(jié)束后,生成測試報告,統(tǒng)計自動化測試總體情況,并郵件發(fā)送給項目相關(guān)人員。
3、整體框架
以上是整體框架的思路介紹:
TestLink負責(zé)接口自動化用例維護
Jmeter則負責(zé)腳本編寫和運行,統(tǒng)一通過SVN進行維護
另外郵件收發(fā)服務(wù)器則根據(jù)內(nèi)部情況靈活選擇
整個過程統(tǒng)一由Jenkins 進行調(diào)度管理;
4、技術(shù)關(guān)鍵
1、Testlink僅支持三種格式的結(jié)果返回:Junit、TestNG、TAP ,Jmeter生成報告無法直接通過Jenkins傳遞給Testlink,并正確識別。
2、TAP格式文件與Testlink中對應(yīng)用例關(guān)聯(lián)是通過.tap文件關(guān)聯(lián)的,即:一個用例就需要一個TAP文件,但是測試結(jié)束后需要輸出整體測試結(jié)果,必須要求Jmeter測試結(jié)束后,輸出一個測試結(jié)果文檔,如何將測試結(jié)果轉(zhuǎn)化為TAP文件,且實現(xiàn)與用例一一對應(yīng)。
5、實現(xiàn)思路
本章給出第4章提到鍵技術(shù)點的解決,在說明前,需要以下前提準備:
1、 規(guī)范化Jmeter腳本中的規(guī)范要求:
1) HTTP Sample命名規(guī)范為:
2) 如果1條用例對應(yīng)有多個HTTP Sample,用例編號與用例名稱部分必須一致
3) 每一個HTTP Sample最好都要有斷言,判斷是否執(zhí)行成功,若沒有斷言,無法判斷是否符合預(yù)期,則轉(zhuǎn)換腳本默認為成功。
2、 TestLink上增加自定義字段,用于標記用例與腳本的對應(yīng)關(guān)系,如:AutoTest,AutoTest字段內(nèi)容則為:上述中的用例編號,用以將Testlink測試用例與腳本測試結(jié)果關(guān)聯(lián)對應(yīng)
3、 TestLink上自動化的用例執(zhí)行方式設(shè)置為:自動的
5.1、關(guān)鍵點實現(xiàn)思路
以下則是XML2TAP.sh的設(shè)計思路,根據(jù)以下思路輸出sh腳本
5.2、具體實施過程
具體的實施過程,如下述圖所示:
1. Jenkins每次執(zhí)行時,首先從SVN指定目錄,下載所有測試腳本。
2. 通過API key與Testlink建立關(guān)聯(lián),并獲取工程配置的測試項目對應(yīng)測試計劃下的自動化測試用例信息。
3. 調(diào)用Ant Plugin插件,通過build.xml配置,執(zhí)行所有的Jmeter腳本文件,并生成XML格式測試報告:1份。
4. 對XML測試報告進行二次處理,調(diào)用XML2HTML.xsl樣式表,生成HTML格式測試報告,用于郵件發(fā)送完整的測試報告和jenkins上發(fā)布測試結(jié)果。
5. 對XML測試報告進行轉(zhuǎn)換,調(diào)用XML2TAP.sh腳本,對XML中每一個Sample結(jié)果進行處理,生成Testlink可識別的TAP文件,以用例為單位,生成多個tap文件。
6. 將tap文件與第二步中獲取的自動化用例信息對應(yīng),返回測試結(jié)果及測試報告到Testlink。
7. 將第四步生成的測試報告郵件發(fā)送給相關(guān)人員。