【總結(jié)】我所理解的接口測(cè)試-接口自動(dòng)化測(cè)試

總結(jié)我所理解的接口測(cè)試,整理接口測(cè)試的點(diǎn)點(diǎn)滴滴,只為回首往事時(shí)不因虛度年華而悔恨,不因碌碌無(wú)為而羞恥。

一、問(wèn)題:如何兩眼一抹黑的利用python做接口自動(dòng)化測(cè)試

理解:這個(gè)問(wèn)題,當(dāng)初我在開始學(xué)python,并嘗試用python寫接口自動(dòng)化測(cè)試時(shí)也許遇到,后來(lái)我發(fā)現(xiàn)以結(jié)果為導(dǎo)向,反推需要實(shí)現(xiàn)的功能是個(gè)很好的方法,先不管實(shí)現(xiàn)的好不好,腳本效率高不高,先做出能實(shí)現(xiàn)效果的版本。

二、問(wèn)題:如何以結(jié)果為導(dǎo)向,反推需要實(shí)現(xiàn)的功能

理解:任務(wù)是“python+mysql實(shí)現(xiàn)http協(xié)議的接口測(cè)試”,目標(biāo)是能自動(dòng)比較結(jié)果(包括code和返回包參數(shù)完整性)

分析:要實(shí)現(xiàn)這個(gè)效果,涉及到的功能點(diǎn)有以下幾點(diǎn):

1.python對(duì)mysql數(shù)據(jù)庫(kù)的操作,包括增、刪、改、查數(shù)據(jù);

2.python發(fā)送http請(qǐng)求;

3.python處理返回包的結(jié)果;

4.mysql數(shù)據(jù)庫(kù)操作,包含sql語(yǔ)句;

具體實(shí)現(xiàn)過(guò)程:

圖片發(fā)自簡(jiǎn)書App

1.mysql數(shù)據(jù)庫(kù)表的新建:

(1).我們需要一類表,存儲(chǔ)每個(gè)接口的測(cè)試用例數(shù)據(jù)和執(zhí)行結(jié)果的記錄,包括的字段有用例級(jí)別(BVT,1,2,3)、請(qǐng)求類型(get/post)、接口地址、請(qǐng)求頭文件、請(qǐng)求參數(shù)、返回包、實(shí)際code結(jié)果、預(yù)期code結(jié)果,實(shí)際參數(shù)集、預(yù)期參數(shù)集,code對(duì)比結(jié)果、參數(shù)集對(duì)比結(jié)果、用例狀態(tài)、創(chuàng)建時(shí)間、更新時(shí)間、請(qǐng)求時(shí)長(zhǎng);

圖1 接口用例case表設(shè)計(jì)

(2).配置表,存儲(chǔ)一些比較常用、且變化小的參數(shù),比如默認(rèn)用例級(jí)別、接口超時(shí)時(shí)間等;

圖2 配置表設(shè)計(jì)

(3).結(jié)果統(tǒng)計(jì)表,存儲(chǔ)每次執(zhí)行后,每個(gè)接口的結(jié)果情況;

2.python對(duì)mysql數(shù)據(jù)庫(kù)的操作:

(1).此處需要預(yù)先封裝好python對(duì)mysql的基本操作類型,網(wǎng)上一招一大堆,可以直接拿來(lái)修改使用;

(2).根據(jù)實(shí)際情況,在定制一些操作類型,方便外部調(diào)用;

圖3 python對(duì)mysql數(shù)據(jù)庫(kù)操作封裝

3.python發(fā)送http請(qǐng)求:

(1).此處需要封裝python本身對(duì)http請(qǐng)求的方法,等于再套一個(gè)殼子,而這個(gè)殼子里面包含了get方法、post方法、url鏈接有效性方法;

圖4 http請(qǐng)求外層殼
圖5 http請(qǐng)求類型方法

3.python處理http返回包

(1).此處可以根據(jù)配置來(lái)決定對(duì)返回包的測(cè)試程度,比如有以下3個(gè)級(jí)別(0-只測(cè)試code值,1-返回包參數(shù)完整性;2-返回包功能),通過(guò)配置值決定需要進(jìn)行哪些程度的測(cè)試

圖6 針對(duì)不同的測(cè)試程度定義測(cè)試

(2).將不同的測(cè)試程度分裝到一個(gè)類中,分別以方法來(lái)定義不同的測(cè)試程度

圖7 定義不同測(cè)試程度的方法

(3).將不同程度的測(cè)試結(jié)果寫入數(shù)據(jù)庫(kù)測(cè)試用例表,即完成一條完整的測(cè)試用例數(shù)據(jù)

4.測(cè)試結(jié)果的統(tǒng)計(jì)

(1).配置不同的統(tǒng)計(jì)維度,其對(duì)應(yīng)的不同的統(tǒng)計(jì)sql,這樣修改起來(lái)也比較方便,此處涉及到sql語(yǔ)句的參數(shù)化

(2).可以配合django使用web頁(yè)面來(lái)展示數(shù)據(jù),頁(yè)面選擇不同的展示維度,后臺(tái)調(diào)用不同的統(tǒng)計(jì)sql,再將數(shù)據(jù)展示在頁(yè)面,或者以表格形式導(dǎo)出。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容