帶你打開-接口測試的大門


你是否有這樣的疑慮节芥?


1平匈、到底什么是接口,接口長什么樣?

2增炭、什么情況下進(jìn)行接口測試忍燥?

3、接口文檔到底是什么隙姿?

4梅垄、測試接口的正確姿勢是什么?


什么情況下展開接口測試输玷?


1队丝、項目處于開發(fā)階段,前后端聯(lián)調(diào)接口是否請求成功

2欲鹏、有接口文檔机久,開發(fā)已完成聯(lián)調(diào),功能測試展開之前

3赔嚎、專項測試:如測流量大小膘盖、查看圖片壓縮大小、測試接口請求響應(yīng)時間

4尤误、版本上線前侠畔,進(jìn)入整體回歸測試,查看接口是否有異常

5损晤、版本功能文檔后软棺,接口自動化


什么是接口?


計算機(jī)中包括硬件接口和軟件接口尤勋。電腦等信息機(jī)器硬件組件間的接口叫硬件接口喘落,是可以看到的以實(shí)物存在的如串口、并口等最冰;而電腦等信息機(jī)器軟件組件間的接口叫軟件接口揖盘。而軟件接口則是虛擬存在的接口。

接口廣義的定義為:泛指實(shí)體把自己提供給外界的一種抽象化物(可以為另一實(shí)體)锌奴,用以由內(nèi)部操作分離出外部溝通方法兽狭,使其能被修改內(nèi)部而不影響外界其他實(shí)體與其交互的方式。

接口狹義的定義為:是指特定的函數(shù)集合鹿蜀,一般是用interface(Delphi)聲明的箕慧,它表示一個方法集合,這個集合被成為一個命名接口茴恰。一個命名接口中的方法必須在一個類中實(shí)現(xiàn)后才能被使用颠焦,一個類繼承實(shí)現(xiàn)一個接口,稱為這個類實(shí)現(xiàn)了該接口往枣,一個接口可以被多個類實(shí)現(xiàn)伐庭,一個類也可以實(shí)現(xiàn)繼承多個接口粉渠,這樣就形成了一種靈活的接口調(diào)用的方式,從而實(shí)現(xiàn)更加靈活和節(jié)省資源的多態(tài)圾另。


接口測試的分類


接口測試分為模塊接口測試和Web接口測試霸株。模塊接口測試需要對代碼有一定的掌握能力,可以劃分到白盒測試中集乔;而Web接口測試分為服務(wù)器接口測試和外部接口測試去件。

1、服務(wù)器接口測試:是測試瀏覽器與服務(wù)器的接口扰路。這個很容易理解尤溜,我們知道web開發(fā)一般分前端和后端,前端開發(fā)人員用HTML/CSS/JavaScript等技術(shù)汗唱。后端開發(fā)人用PHP/JAVA/Python/Ruby等各種語言宫莱。用戶輸入的數(shù)據(jù)是輸入到的前端頁面上,怎樣把這些數(shù)據(jù)傳遞的后臺的呢哩罪?通過HTTP協(xié)議的GET與POST請求來實(shí)現(xiàn)前后端的數(shù)據(jù)傳遞授霸。這也可認(rèn)為是接口測試,調(diào)用的登錄接口還是查詢接口识椰,傳參的是用戶密碼還是搜索關(guān)鍵字绝葡。

2深碱、外部接口測試:這個很典型的例子就是第三方登錄腹鹉,比如你做的新系統(tǒng)免于新用戶重新注冊的麻煩會提供第三方登錄,那用戶在登錄的時候調(diào)用的就是第三方登錄的接口敷硅,由第三方驗(yàn)證用戶名和密碼并且返回給當(dāng)前系統(tǒng)功咒。


接口測試的意義


1、保證系統(tǒng)的穩(wěn)定性:

一個系統(tǒng)的服務(wù)端越接近底層绞蹦,對系統(tǒng)的影響就越大力奋,甚至有可能牽一發(fā)而動全身,服務(wù)端的一個缺陷可能會引起客戶端的幾個甚至十幾個缺陷幽七,更可怕的是服務(wù)端的缺陷有可能引起系統(tǒng)的崩潰景殷,這對整個系統(tǒng)來說,損失將是不可估量的澡屡,因此服務(wù)端接口的質(zhì)量將直接影響到系統(tǒng)的正確和穩(wěn)定猿挚。

然而,在實(shí)際的開發(fā)過程中驶鹉,開發(fā)人員并沒有充足的時間編寫單元測試绩蜻,并且他們往往對自己編寫的代碼有足夠的信心,不愿意將時間“浪費(fèi)”在編寫單元測試身上室埋。這個時候接口測試就肩負(fù)著重要的作用办绝。

2伊约、將 bug 控制在項目前期:

就筆者所做的微信活動而言,后端系統(tǒng)比較成熟孕蝉,對于前端開發(fā)來說屡律,每個活動都有很大不同。這就導(dǎo)致后端接口開發(fā)只需要一天就可完成昔驱,而前端開發(fā)的工作量至少需要兩疹尾、三天。而在這個空當(dāng)期就可以充分的對接口進(jìn)行測試骤肛,從而盡早的發(fā)現(xiàn)系統(tǒng) bug纳本;減少功能測試的工作量,縮短產(chǎn)品的發(fā)布周期腋颠。

3繁成、檢查服務(wù)器的異常處理能力:

我們通常把前端的驗(yàn)證稱為弱驗(yàn)證,因?yàn)樗苋菀妆焕@過淑玫,這個時候如果只站在功能的層面時行測試巾腕,就很難發(fā)現(xiàn)一些安全的問題。不以前功能為入口的接口測試就會發(fā)揮出它的作用絮蒿。


接口測試的用例設(shè)計流程


首先尊搬,明確出發(fā)點(diǎn)。和所有的測試一樣土涝,接口測試出發(fā)點(diǎn)是你要證明所測的程序是錯誤的佛寿。以這個出發(fā)點(diǎn)為導(dǎo)向,你的設(shè)計行為就會盡量朝這個方向發(fā)展但壮,更易發(fā)現(xiàn)問題冀泻,不會出現(xiàn)大方向的偏差。

其次蜡饵,選擇好測試對象弹渔。對于一個系統(tǒng)做接口測試選擇好的測試對象是接口測試關(guān)鍵。一個系統(tǒng)有無數(shù)的接口溯祸,每個接口如果分別測試肢专,那將是很痛苦的一件事情,不光繁瑣浪費(fèi)焦辅,而且任何一個內(nèi)部接口的變動泞当,都將導(dǎo)致我們用例的不可用谎僻。這里推薦把整個系統(tǒng)作為一個整體鹰贵,選擇整個系統(tǒng)提供給外部使用辰妙、交互的最外層接口作為你的測試對象,以此為測試對象的用例將有很好的健壯性仆抵,并且更高效跟继。另外种冬,根據(jù)數(shù)據(jù)的流向,又可將這些最外層的接口分為兩類:一類是數(shù)據(jù)進(jìn)入系統(tǒng)的接口舔糖;一類是數(shù)據(jù)流出系統(tǒng)的接口娱两。進(jìn)入系統(tǒng)的接口實(shí)際是我們用例的執(zhí)行調(diào)用的接口〗鹇穑可通過變化參數(shù)對這些接口進(jìn)行調(diào)用十兢,模擬外部的使用;而流出的接口則是我們用例真正該驗(yàn)證的點(diǎn)摇庙。數(shù)據(jù)從哪里流出旱物,流出時的狀態(tài)如何,此時系統(tǒng)又是什么狀態(tài)都是我們所應(yīng)該驗(yàn)證的卫袒。

然后宵呛,確認(rèn)完整的測試對象的功能:確認(rèn)外部接口提供給使用這些接口的外部用戶什么樣的功能,外部用戶真正需要什么樣的功能夕凝。此兩個功能一定要準(zhǔn)確詳細(xì)宝穗,用例的設(shè)計要嚴(yán)格按照測試對象功能設(shè)計才是正確的用例。

最后當(dāng)出發(fā)點(diǎn)码秉、對象逮矛、功能都確定了,就可以真正設(shè)計用例了转砖。


接口測試用例設(shè)計舉例


我覺得接口測試用例的設(shè)計方法其實(shí)和功能測試用例的設(shè)計方法是類似的须鼎,參考如下:

1.輸入?yún)?shù)測試: 針對輸入的參數(shù)進(jìn)行測試,也可以說是假定接口參數(shù)的不正確性進(jìn)行的測試堪藐,確保接口對任意類型的輸入都做了相應(yīng)的處理:

輸入?yún)?shù)合法莉兰,

輸入?yún)?shù)不合法挑围,

輸入?yún)?shù)為空礁竞,

輸入?yún)?shù)為null,

輸入?yún)?shù)超長杉辙;

2.功能測試:接口是否滿足了所提供的功能模捂,相當(dāng)于是正常情況測試,如果一個接口功能復(fù)雜時推薦對接口用例進(jìn)行結(jié)構(gòu)劃分蜘矢,這樣子用例具有更好的可讀性和維護(hù)性狂男。

3.邏輯測試:邏輯測試嚴(yán)格講應(yīng)為單元測試,單元測試應(yīng)保持內(nèi)部邏輯的正確性品腹,可單元測試和接口測試界限并不是那么清楚岖食,所以我們也可以從給出的設(shè)計文檔中考慮內(nèi)部邏輯錯誤的分支情況和異常;

4.異常情況測試:接口實(shí)現(xiàn)是否對異常情況都進(jìn)行了處理舞吭,接口輸入?yún)?shù)雖然合法泡垃,但是在接口實(shí)現(xiàn)中析珊,也會出現(xiàn)異常,因?yàn)閮?nèi)部的異常不一定是輸入的數(shù)據(jù)造成的蔑穴,而有可能是其他邏輯造成的忠寻,程序需要對任何的異常都進(jìn)行處理。


接口文檔舉例


下圖為豆瓣接口文檔存和,包括URL奕剃,調(diào)用方式,傳入?yún)?shù)捐腿,返回值纵朋,狀態(tài)碼等等~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市茄袖,隨后出現(xiàn)的幾起案子倡蝙,更是在濱河造成了極大的恐慌,老刑警劉巖绞佩,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寺鸥,死亡現(xiàn)場離奇詭異,居然都是意外死亡品山,警方通過查閱死者的電腦和手機(jī)胆建,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肘交,“玉大人笆载,你說我怎么就攤上這事⊙纳耄” “怎么了凉驻?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長复罐。 經(jīng)常有香客問我涝登,道長,這世上最難降的妖魔是什么效诅? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任胀滚,我火速辦了婚禮,結(jié)果婚禮上乱投,老公的妹妹穿的比我還像新娘咽笼。我一直安慰自己,他們只是感情好戚炫,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布剑刑。 她就那樣靜靜地躺著,像睡著了一般双肤。 火紅的嫁衣襯著肌膚如雪施掏。 梳的紋絲不亂的頭發(fā)上层宫,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機(jī)與錄音其监,去河邊找鬼萌腿。 笑死,一個胖子當(dāng)著我的面吹牛抖苦,可吹牛的內(nèi)容都是我干的毁菱。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼锌历,長吁一口氣:“原來是場噩夢啊……” “哼贮庞!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起究西,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤窗慎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后卤材,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體遮斥,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年扇丛,在試婚紗的時候發(fā)現(xiàn)自己被綠了术吗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡帆精,死狀恐怖较屿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情卓练,我是刑警寧澤隘蝎,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站襟企,受9級特大地震影響嘱么,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜整吆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一拱撵、第九天 我趴在偏房一處隱蔽的房頂上張望辉川。 院中可真熱鬧表蝙,春花似錦、人聲如沸乓旗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽屿愚。三九已至汇跨,卻和暖如春务荆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背穷遂。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工函匕, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蚪黑。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓盅惜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親忌穿。 傳聞我的和親對象是個殘疾皇子抒寂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評論 2 354

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

  • 文章來自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鵬閱讀 9,192評論 2 126
  • 1.測試與軟件模型 軟件開發(fā)生命周期模型指的是軟件開發(fā)全過程、活動和任務(wù)的結(jié)構(gòu)性框架掠剑。軟件項目的開發(fā)包括:需求屈芜、設(shè)...
    Mr希靈閱讀 21,957評論 7 278
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)朴译,斷路器井佑,智...
    卡卡羅2017閱讀 134,656評論 18 139
  • 1.測試與軟件模型 軟件開發(fā)生命周期模型指的是軟件開發(fā)全過程、活動和任務(wù)的結(jié)構(gòu)性框架眠寿。軟件項目的開發(fā)包括:需求毅糟、設(shè)...
    宇文臭臭閱讀 6,724評論 5 100
  • 會議桌上擺放著數(shù)杯喝到一半的雙倍濃縮星爸爸,桌旁圍坐著幾個哈欠連天澜公、疲憊不堪的同事姆另,白板上寥寥數(shù)個Stanly覺得...
    話多多的Lucy姐閱讀 737評論 0 1