接口測試的大門

摘自http://www.51testing.com/html/15/n-3721815.html

你是否有這樣的疑慮综苔?

1位岔、到底什么是接口,接口長什么樣杨刨?

2擦剑、什么情況下進行接口測試

3、接口文檔到底是什么捉撮?

4妇垢、測試接口的正確姿勢是什么肉康?

什么情況下展開接口測試灼舍?

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

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

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

4郭赐、版本上線前确沸,進入整體回歸測試,查看接口是否有異常

5观谦、版本功能文檔后桨菜,接口自動化

什么是接口?

計算機中包括硬件接口和軟件接口泻红。電腦等信息機器硬件組件間的接口叫硬件接口霞掺,是可以看到的以實物存在的如串口菩彬、并口等潮梯;而電腦等信息機器軟件組件間的接口叫軟件接口惨恭。而軟件接口則是虛擬存在的接口脱羡。

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

接口狹義的定義為:是指特定的函數(shù)集合,一般是用interface(Delphi)聲明的升酣,它表示一個方法集合态罪,這個集合被成為一個命名接口。一個命名接口中的方法必須在一個類中實現(xiàn)后才能被使用绩聘,一個類繼承實現(xiàn)一個接口耗啦,稱為這個類實現(xiàn)了該接口,一個接口可以被多個類實現(xiàn)衅谷,一個類也可以實現(xiàn)繼承多個接口似将,這樣就形成了一種靈活的接口調(diào)用的方式,從而實現(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請求來實現(xiàn)前后端的數(shù)據(jù)傳遞大年。這也可認(rèn)為是接口測試玉雾,調(diào)用的登錄接口還是查詢接口抹凳,傳參的是用戶密碼還是搜索關(guān)鍵字。

2赢底、外部接口測試:這個很典型的例子就是第三方登錄幸冻,比如你做的新系統(tǒng)免于新用戶重新注冊的麻煩會提供第三方登錄,那用戶在登錄的時候調(diào)用的就是第三方登錄的接口庞溜,由第三方驗證用戶名和密碼并且返回給當(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)定眯亦。

然而伤溉,在實際的開發(fā)過程中,開發(fā)人員并沒有充足的時間編寫單元測試妻率,并且他們往往對自己編寫的代碼有足夠的信心乱顾,不愿意將時間“浪費”在編寫單元測試身上。這個時候接口測試就肩負(fù)著重要的作用宫静。

2走净、將bug控制在項目前期:

就筆者所做的微信活動而言,后端系統(tǒng)比較成熟孤里,對于前端開發(fā)來說伏伯,每個活動都有很大不同捌袜。這就導(dǎo)致后端接口開發(fā)只需要一天就可完成说搅,而前端開發(fā)的工作量至少需要兩、三天虏等。而在這個空當(dāng)期就可以充分的對接口進行測試弄唧,從而盡早的發(fā)現(xiàn)系統(tǒng)bug;減少功能測試的工作量霍衫,縮短產(chǎn)品的發(fā)布周期候引。

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

我們通常把前端的驗證稱為弱驗證敦跌,因為它很容易被繞過澄干,這個時候如果只站在功能的層面時行測試,就很難發(fā)現(xiàn)一些安全的問題。不以前功能為入口的接口測試就會發(fā)揮出它的作用麸俘。

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

首先辩稽,明確出發(fā)點。和所有的測試一樣疾掰,接口測試出發(fā)點是你要證明所測的程序是錯誤的搂誉。以這個出發(fā)點為導(dǎo)向,你的設(shè)計行為就會盡量朝這個方向發(fā)展静檬,更易發(fā)現(xiàn)問題,不會出現(xiàn)大方向的偏差并级。

其次拂檩,選擇好測試對象。對于一個系統(tǒng)做接口測試選擇好的測試對象是接口測試關(guān)鍵嘲碧。一個系統(tǒng)有無數(shù)的接口稻励,每個接口如果分別測試,那將是很痛苦的一件事情愈涩,不光繁瑣浪費望抽,而且任何一個內(nèi)部接口的變動,都將導(dǎo)致我們用例的不可用履婉。這里推薦把整個系統(tǒng)作為一個整體煤篙,選擇整個系統(tǒng)提供給外部使用、交互的最外層接口作為你的測試對象毁腿,以此為測試對象的用例將有很好的健壯性辑奈,并且更高效。另外已烤,根據(jù)數(shù)據(jù)的流向鸠窗,又可將這些最外層的接口分為兩類:一類是數(shù)據(jù)進入系統(tǒng)的接口;一類是數(shù)據(jù)流出系統(tǒng)的接口胯究。進入系統(tǒng)的接口實際是我們用例的執(zhí)行調(diào)用的接口稍计。可通過變化參數(shù)對這些接口進行調(diào)用裕循,模擬外部的使用臣嚣;而流出的接口則是我們用例真正該驗證的點。數(shù)據(jù)從哪里流出费韭,流出時的狀態(tài)如何茧球,此時系統(tǒng)又是什么狀態(tài)都是我們所應(yīng)該驗證的。

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

最后當(dāng)出發(fā)點穷吮、對象、功能都確定了饥努,就可以真正設(shè)計用例了捡鱼。

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

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

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

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

輸入?yún)?shù)不合法溶浴,

輸入?yún)?shù)為空乍迄,

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

輸入?yún)?shù)超長士败;

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

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

4.異常情況測試:接口實現(xiàn)是否對異常情況都進行了處理擅笔,接口輸入?yún)?shù)雖然合法志衣,但是在接口實現(xiàn)中,也會出現(xiàn)異常猛们,因為內(nèi)部的異常不一定是輸入的數(shù)據(jù)造成的念脯,而有可能是其他邏輯造成的,程序需要對任何的異常都進行處理弯淘。

接口文檔舉例

下圖為簡單的接口文檔绿店,包括URL,調(diào)用方式庐橙,傳入?yún)?shù)假勿,返回值,狀態(tài)碼等等~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末态鳖,一起剝皮案震驚了整個濱河市转培,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌浆竭,老刑警劉巖浸须,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件惨寿,死亡現(xiàn)場離奇詭異,居然都是意外死亡删窒,警方通過查閱死者的電腦和手機裂垦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肌索,“玉大人蕉拢,你說我怎么就攤上這事〕涎牵” “怎么了晕换?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長站宗。 經(jīng)常有香客問我届巩,道長,這世上最難降的妖魔是什么份乒? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮腕唧,結(jié)果婚禮上或辖,老公的妹妹穿的比我還像新娘。我一直安慰自己枣接,他們只是感情好颂暇,可當(dāng)我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著但惶,像睡著了一般耳鸯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上膀曾,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天县爬,我揣著相機與錄音,去河邊找鬼添谊。 笑死财喳,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的斩狱。 我是一名探鬼主播耳高,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼所踊!你這毒婦竟也來了泌枪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤秕岛,失蹤者是張志新(化名)和其女友劉穎碌燕,沒想到半個月后误证,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡陆蟆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年雷厂,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叠殷。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡改鲫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出林束,到底是詐尸還是另有隱情像棘,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布壶冒,位于F島的核電站缕题,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏胖腾。R本人自食惡果不足惜烟零,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望咸作。 院中可真熱鬧锨阿,春花似錦、人聲如沸记罚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽桐智。三九已至末早,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間说庭,已是汗流浹背然磷。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留口渔,地道東北人样屠。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像缺脉,于是被迫代替她去往敵國和親痪欲。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,914評論 2 355

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

  • 你是否有這樣的疑慮攻礼? 1业踢、到底什么是接口,接口長什么樣礁扮? 2知举、什么情況下進行接口測試瞬沦? 3、接口文檔到底是什么雇锡? ...
    小喜_ww閱讀 1,465評論 0 19
  • 文章來自: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,657評論 18 139
  • 1.測試與軟件模型 軟件開發(fā)生命周期模型指的是軟件開發(fā)全過程边坤、活動和任務(wù)的結(jié)構(gòu)性框架。軟件項目的開發(fā)包括:需求谅年、設(shè)...
    宇文臭臭閱讀 6,725評論 5 100