1、摘 要
目前基于Jmeter的接口自動化測試框架,大多只實現(xiàn)腳本維護(hù)和自動調(diào)度,無法與Testlink進(jìn)行互通,實現(xiàn)測試方案與自動化實施流程連接,本文基于Testlink、Jmeter、Jenkins實現(xiàn):通過Testlink統(tǒng)一維護(hù)接口自動化測試用例,Jmeter編寫和運行測試腳本,Jenkins實現(xiàn)統(tǒng)一調(diào)度,并返回執(zhí)行結(jié)果和測試報告到Testlink。從而實現(xiàn)整個接口自動化測試框架,提高測試效率,降低后續(xù)維護(hù)成本。
為了實現(xiàn)項目快速開發(fā)-測試-交付,測試需要在項目開發(fā)過程介入,進(jìn)行接口級別測試,并輸出自動化測試腳本,便于后續(xù)集成測試使用自動化測試保證每次BUG修復(fù),沒有引發(fā)新的問題,故需要研究一種自動化測試框架,滿足目前項目測試的需求
2、需求梳理如下:
1、 TestLink統(tǒng)一管理測試用例:因功能測試用例一直在Testlink上維護(hù)。
2、 前期已經(jīng)使用Jmeter進(jìn)行接口測試,但是沒有統(tǒng)一的框架將方案、腳本、實施統(tǒng)一起來,故測試工具必須使用Jmeter。
3、 測試腳本統(tǒng)一維護(hù),如:SVN
4、 腳本運行時,需要結(jié)合Testlink測試計劃分配用例,將自動化運行結(jié)果返回到Testlink。
5、 測試結(jié)束后,生成測試報告,統(tǒng)計自動化測試總體情況,并郵件發(fā)送給項目相關(guān)人員。
3、整體框架
以上是整體框架的思路介紹:
· TestLink負(fù)責(zé)接口自動化用例維護(hù)
· Jmeter則負(fù)責(zé)腳本編寫和運行,統(tǒng)一通過SVN進(jìn)行維護(hù)
· 另外郵件收發(fā)服務(wù)器則根據(jù)內(nèi)部情況靈活選擇
· 整個過程統(tǒng)一由Jenkins 進(jìn)行調(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ù)點的解決,在說明前,需要以下前提準(zhǔn)備:
1、 規(guī)范化Jmeter腳本中的規(guī)范要求:
1) HTTP Sample命名規(guī)范為:
2) 如果1條用例對應(yīng)有多個HTTP Sample,用例編號與用例名稱部分必須一致
3) 每一個HTTP Sample好都要有斷言,判斷是否執(zhí)行成功,若沒有斷言,無法判斷是否符合預(yù)期,則轉(zhuǎn)換腳本默認(rèn)為成功。
2、 TestLink上增加自定義字段,用于標(biāo)記用例與腳本的對應(yīng)關(guān)系,如:AutoTest,AutoTest字段內(nèi)容則為:上述中的用例編號,用以將Testlink測試用例與腳本測試結(jié)果關(guān)聯(lián)對應(yīng)
3、 TestLink上自動化的用例執(zhí)行方式設(shè)置為:自動的