【落葉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è)試,我們能模擬出各種類型的入?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)致腳本返工甚至于廢棄重寫的幾率都很大咳燕,而接口大多都是可以重用的。

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) 確定,蘋果手機(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)于這兩類校驗(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)用范圍莽红,至少這類校驗(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)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市网棍,隨后出現(xiàn)的幾起案子黔龟,更是在濱河造成了極大的恐慌,老刑警劉巖滥玷,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件氏身,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡惑畴,警方通過(guò)查閱死者的電腦和手機(jī)蛋欣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)如贷,“玉大人陷虎,你說(shuō)我怎么就攤上這事「芨ぃ” “怎么了尚猿?”我有些...
    開(kāi)封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)楣富。 經(jīng)常有香客問(wèn)我谊路,道長(zhǎng),這世上最難降的妖魔是什么菩彬? 我笑而不...
    開(kāi)封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任缠劝,我火速辦了婚禮,結(jié)果婚禮上骗灶,老公的妹妹穿的比我還像新娘惨恭。我一直安慰自己,他們只是感情好耙旦,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布脱羡。 她就那樣靜靜地躺著,像睡著了一般免都。 火紅的嫁衣襯著肌膚如雪锉罐。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天绕娘,我揣著相機(jī)與錄音脓规,去河邊找鬼。 笑死险领,一個(gè)胖子當(dāng)著我的面吹牛侨舆,可吹牛的內(nèi)容都是我干的秒紧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼挨下,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼熔恢!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起臭笆,我...
    開(kāi)封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤叙淌,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后愁铺,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體凿菩,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年帜讲,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片椒拗。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡似将,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蚀苛,到底是詐尸還是另有隱情在验,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布堵未,位于F島的核電站腋舌,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏渗蟹。R本人自食惡果不足惜块饺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望雌芽。 院中可真熱鬧授艰,春花似錦、人聲如沸世落。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)屉佳。三九已至谷朝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間武花,已是汗流浹背圆凰。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留体箕,地道東北人送朱。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓娘荡,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親驶沼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子炮沐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

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