【落葉263】“老兵愛(ài)學(xué)習(xí)”之《顛覆你的Python接口自動(dòng)化測(cè)試》(1)

文/秋之川

【目錄】

這是《落葉》文集里第 263?片落葉,希望你能喜歡,不為別的,只為這份堅(jiān)持。

自己挖坑自己填,好記性不如爛筆頭,盡在《老兵愛(ài)學(xué)習(xí)》

【已學(xué)習(xí)】

第一節(jié)課 總體設(shè)計(jì)思想 / 第二節(jié)課 接口基礎(chǔ) / 第三節(jié)課 接口手工測(cè)試

1、什么是接口

接口其實(shí)就是由一段具備邏輯處理的程序代碼所組成的,可被其他方法、服務(wù)或應(yīng)用所使用。

調(diào)用接口的人,可以把接口看作一個(gè)黑匣子,只需要按接口文檔的約定傳入正確的參數(shù),再接收并處理返回的數(shù)據(jù),不需要知道黑匣子里的處理機(jī)制;

2、為什么要做接口測(cè)試,及接口自動(dòng)化

接口測(cè)試是測(cè)試系統(tǒng)組件間接口的一種測(cè)試。接口測(cè)試主要用于檢測(cè)外部組件與系統(tǒng)之間以及內(nèi)部各個(gè)子系統(tǒng)之間的交互。測(cè)試的重點(diǎn)是要檢查數(shù)據(jù)的交換,傳遞和控制管理過(guò)程,以及系統(tǒng)間的相互邏輯及依賴關(guān)系等。?

1、產(chǎn)品的系統(tǒng)復(fù)雜度越來(lái)越高,只靠手工的前端測(cè)試,很難確保很高的覆蓋度,但是通過(guò)接口測(cè)試,我們能模擬出各種類(lèi)型的入?yún)⒅担ㄒ恍那岸四M不了的入?yún)⒅担覀兡芨鶕?jù)接口文檔的定義,設(shè)計(jì)出相對(duì)完善的入?yún)⒅担?zhēng)在接口層先保證業(yè)務(wù)邏輯的正確,剩余的大多數(shù)問(wèn)題就只是 APP 自身的交互和數(shù)據(jù)展示問(wèn)題了。

2、接口測(cè)試相對(duì) UI/功能測(cè)試來(lái)說(shuō),自動(dòng)化的成本更低,性價(jià)比更高,特別是在產(chǎn)品進(jìn)入穩(wěn)定維護(hù)期之前,UI 和功能都不穩(wěn)定,變化較大,導(dǎo)致腳本返工甚至于廢棄重寫(xiě)的幾率都很大,而接口大多都是可以重用的。

3、現(xiàn)在很多系統(tǒng)前后端是分離的,從安全層面來(lái)說(shuō),只依賴于前端進(jìn)行 Input Validation 已經(jīng)完全不能滿足系統(tǒng)的安全要求,因?yàn)槔@過(guò)前端相對(duì)容易,所以就需要后端同樣進(jìn)行 Output Validation,這就需要用接口測(cè)試工具去驗(yàn)證;

3、Fiddler

a. 打開(kāi)Fiddler->Tools->Fiddler

Options在Connection面板里將Allow remote computers to connect勾選起來(lái),確定后,關(guān)閉Fiddler并重新打開(kāi)Fiddler


b. 在cmd里執(zhí)行netstat-anop tcp查看Fiddler進(jìn)程是否正常監(jiān)聽(tīng)8888端口,如果服務(wù)沒(méi)有正常開(kāi)啟,可以嘗試使用其他端口,端口修改的位置,如上圖位置


c. 從上圖我們看到,進(jìn)程ID為7724的Fiddler正在監(jiān)聽(tīng)8888端口,說(shuō)明代理已經(jīng)在工作了.

d. 在cmd里執(zhí)行ipconfig查看本機(jī)IP號(hào)


e. 設(shè)置手機(jī)端網(wǎng)絡(luò)代理

(1) 打開(kāi)你手機(jī)連接的無(wú)線,代理設(shè)置->手動(dòng)

(2) 主機(jī):192.168.0.153(你的運(yùn)行Fiddler的電腦IP)

(3) 端口:8888

(4) 確定,蘋(píng)果手機(jī)直接后退就可以了

f. 手機(jī)端操作app,檢查fiddler是否有數(shù)據(jù)記錄

g. 測(cè)試完成后,記得關(guān)閉代理,以免 Fiddler 關(guān)掉之后,手機(jī)上不了網(wǎng)

4、接口測(cè)試用例設(shè)計(jì)

聽(tīng)完了老師關(guān)于設(shè)計(jì)方法的講解,結(jié)合我自己的認(rèn)知,我對(duì)接口測(cè)試的用例設(shè)計(jì)做了下面一些思考和總結(jié)。

參數(shù)校驗(yàn):

a. 參數(shù)完整性

通常是用來(lái)做入?yún)?shù)必填項(xiàng)檢查的,因?yàn)榍岸送鶗?huì)做必填項(xiàng)保護(hù)和響應(yīng)提示信息,為了確保服務(wù)端也做了必填項(xiàng)保護(hù),我們需要將必填項(xiàng)對(duì)應(yīng)的入?yún)?shù)值置為空,看服務(wù)端是否會(huì)返回相應(yīng)的提示信息和響應(yīng)狀態(tài)碼。

b. 參數(shù)合法性

入?yún)?shù)值的合法性檢查一般也會(huì)在前端做保護(hù),但后端往往容易忽視或遺漏,為了確保服務(wù)端也做了入?yún)?shù)值的合法性檢查,我們除了設(shè)計(jì)合法的入?yún)⒅抵猓€需要設(shè)計(jì)一些非法的參數(shù)值,看服務(wù)端是否會(huì)拋出相應(yīng)的異常和響應(yīng)狀態(tài)碼。

邏輯校驗(yàn):

這里的邏輯性檢查,就是檢查服務(wù)端返回的 JSON 串里的參數(shù)值,是否與根據(jù)入?yún)⒌闹岛蜆I(yè)務(wù)邏輯推演出來(lái)的期望值一致,以此來(lái)測(cè)試該接口的業(yè)務(wù)邏輯處理是否正確。

關(guān)于這兩類(lèi)校驗(yàn)的自動(dòng)化實(shí)現(xiàn),我其實(shí)也一直在糾結(jié)它們的性價(jià)比。

前者是自動(dòng)化測(cè)試工具很容易實(shí)現(xiàn)的,應(yīng)用面也較廣,比如回歸測(cè)試、環(huán)境檢查、現(xiàn)網(wǎng)巡檢等場(chǎng)景,而且也易于復(fù)制,因?yàn)樗旧砗蜆I(yè)務(wù)邏輯耦合性不大,更多的只是檢查該接口的健康狀態(tài)。

后者因?yàn)樾枰r?yàn)邏輯正確與否,所以在做返回值比對(duì)時(shí),就不僅僅只是比較 JSON 串里的返回參數(shù)值和期望結(jié)果是否一致了,在某些場(chǎng)景下還需要對(duì)數(shù)據(jù)庫(kù)里的數(shù)據(jù)進(jìn)行實(shí)時(shí)比對(duì)或操作。這在設(shè)計(jì)工具時(shí),不可避免地會(huì)增加實(shí)現(xiàn)的難度,同時(shí)還縮小了可應(yīng)用范圍,至少這類(lèi)校驗(yàn)就不能在真實(shí)的客戶環(huán)境去執(zhí)行,會(huì)存在風(fēng)險(xiǎn)。

所以,比較期待在后續(xù)課程的學(xué)習(xí)過(guò)程中,能讓我關(guān)于接口邏輯校驗(yàn)自動(dòng)化工具的構(gòu)思變得清晰。

【待學(xué)習(xí)】

第四節(jié)課:Python 操作 MySQL(2017.08.11 周五晚 21:00)

作者簡(jiǎn)介:14 年測(cè)試 + 11 年項(xiàng)目管理 + 11 年團(tuán)隊(duì)管理 = 一個(gè)測(cè)試?yán)媳?/p>

【目錄】

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,646評(píng)論 6 533
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,595評(píng)論 3 418
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 176,560評(píng)論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 63,035評(píng)論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,814評(píng)論 6 410
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,224評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,301評(píng)論 3 442
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,444評(píng)論 0 288
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,988評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,804評(píng)論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,998評(píng)論 1 370
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,544評(píng)論 5 360
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,237評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 34,665評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 35,927評(píng)論 1 287
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,706評(píng)論 3 393
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,993評(píng)論 2 374

推薦閱讀更多精彩內(nèi)容