一冠王、開發(fā)接口測試案例的整體方案:
第一步:我們要分析出測試需求,并拿到開發(fā)提供的接口說明文檔;
第二步:從接口說明文檔中整理出接口測試案例蜻直,里面要包括詳細(xì)的入?yún)⒑统鰠?shù)據(jù)以及明確的格式和檢查點(diǎn)饵逐。
第三步:和開發(fā)一起對接口測試案例進(jìn)行評審括眠。
第四步:結(jié)合開發(fā)庫,準(zhǔn)備接口測試案例中的入?yún)?shù)據(jù)和出參數(shù)據(jù)倍权,并整理成csv格式的文件掷豺。
第五步:結(jié)合接口測試案例文檔和csv格式的數(shù)據(jù)文檔,做接口測試案例的自動(dòng)化案例開發(fā)。
二当船、接口自動(dòng)化適用場景:
目前設(shè)計(jì)的自動(dòng)化接口測試案例有兩個(gè)運(yùn)行場景:
1. 測試前置题画、開發(fā)自測:一個(gè)新的自動(dòng)化接口測試案例開發(fā)完成后,直接發(fā)給接口對應(yīng)的開發(fā)德频,安排在開發(fā)本地環(huán)境執(zhí)行苍息,一旦開發(fā)確認(rèn)完成接口開發(fā),就開始執(zhí)行接口測試案例壹置,基本上可以實(shí)時(shí)拿到測試結(jié)果档叔,方便開發(fā)快速做出判斷≌艏ǎ【開發(fā)本地運(yùn)行的方式就是打開JMeter工具衙四,導(dǎo)入JMX文件,開始執(zhí)行可患亿〈福】
2. 回歸測試:開發(fā)本地測試通過后,或整個(gè)需求手工測試通過后步藕,把自動(dòng)化的接口測試案例做分類整理惦界,挑選出需要納入到回歸測試中的案例隐绵,在持續(xù)集成環(huán)境重新準(zhǔn)備測試數(shù)據(jù)搀庶,并把案例納入到持續(xù)集成的job中來土童,這些用于回歸的接口測試案例需要配置到持續(xù)集成平臺(tái)自動(dòng)運(yùn)行祈争。
三、接口測試環(huán)境準(zhǔn)備
Jdk1.6或以上:
Jmeter友驮,下載址址:
插件的下載安裝地址:
四疼鸟、創(chuàng)建工程:
1殴蓬、打開Jmeter:下載好Jmeter后立润,雙擊bin目錄下的jmeter.bat文件:
2狂窑、添加線程組:在“測試計(jì)劃”上點(diǎn)擊鼠標(biāo)右鍵-->添加-->threads(Users)-->線程組,添加測試場景設(shè)置組件桑腮,接口測試中一般設(shè)置為1個(gè)“線程數(shù)”泉哈,根據(jù)測試數(shù)據(jù)的個(gè)數(shù)設(shè)定“循環(huán)次數(shù)”。
3破讨、添加“HTTP Cookie管理器”:
4丛晦、添加“Http請求默認(rèn)值”組件,當(dāng)被測系統(tǒng)有唯一的訪問域名和端口時(shí)提陶,這個(gè)組件很好用:
5烫沙、在“HTTP 請求默認(rèn)值”組件配置頁面,填寫被測系統(tǒng)的域名和端口搁骑,http請求的實(shí)現(xiàn)包版本以及具體協(xié)議類型斧吐,線程組里的所有“HTTP Sampler”可默認(rèn)使用此設(shè)置又固。
6仲器、在“線程組”里添加“HTTP 請求”的Sampler
7煤率、在HTTP請求設(shè)置頁面,錄入被測接口的詳細(xì)信息乏冀,包括請求路徑蝶糯,對應(yīng)的請求方法,以及隨請求一起發(fā)送的參數(shù)列表:
8辆沦、設(shè)置檢查點(diǎn):在被測接口對應(yīng)的“HTTP 請求”上昼捍,添加“響應(yīng)斷言”
9、在設(shè)置頁面上添加對相應(yīng)結(jié)果的正則表達(dá)式存在性判斷即可:
10肢扯、添加監(jiān)聽器:方便查看運(yùn)行后的結(jié)果
運(yùn)行結(jié)果:
上述步驟完成了一個(gè)簡單測試案例的創(chuàng)建妒茬,復(fù)雜測試案例均在此基礎(chǔ)上擴(kuò)展完成。使用Jmeter工具開發(fā)的接口測試案例蔚晨,一個(gè)子系統(tǒng)建議放在同一個(gè) “測試計(jì)劃”中乍钻,流程測試可以通過“線程組”來區(qū)分,這樣也便于設(shè)定不同的測試數(shù)據(jù)個(gè)數(shù)铭腕。比較獨(dú)立的接口银择,可以統(tǒng)一放在一個(gè)線程組內(nèi),順序完成測試累舷。
流程性接口的測試:如果要測試的接口可以組成一個(gè)流程浩考,只需要順序添加多個(gè)“HTTP 請求”的Sampler,各請求之間可以提取需要在上下文傳遞的數(shù)據(jù)作為參數(shù)被盈,以保證流程中數(shù)據(jù)的一致性析孽。