面試題1

根據(jù)網(wǎng)絡(luò)資料劫灶,總結(jié)了以下一些常見(jiàn)的接口測(cè)試面試題:

  1. 為什么要做接口測(cè)試南缓?
  2. 接口測(cè)試能發(fā)現(xiàn)哪些問(wèn)題目锭?
  3. 接口測(cè)試怎么測(cè)和泌?
  4. 用什么工具測(cè)接口村缸?
  5. WebService接口是如何測(cè)試的?
  6. 沒(méi)有接口文檔如何做接口測(cè)試武氓?
  7. 在接口測(cè)試過(guò)程中梯皿,上下游接口有數(shù)據(jù)依賴(lài)如何處理?
  8. 依賴(lài)第三方數(shù)據(jù)的接口如何進(jìn)行測(cè)試县恕?
  9. 當(dāng)一個(gè)接口出現(xiàn)異常時(shí)东羹,你是如何分析異常的?
  10. 如何模擬弱網(wǎng)測(cè)試忠烛?
  11. 如何分析一個(gè)bug是前端的還是后端的属提?

為什么要做接口測(cè)試

在討論為什么要做接口測(cè)試之前,我們先稍微了解下接口是什么美尸?

接口可以很不準(zhǔn)確的理解成是與資源打交道冤议,這個(gè)資源可能是本系統(tǒng)的,也可能是其他系統(tǒng)的师坎。

舉個(gè)例子恕酸,假如我們?cè)陂_(kāi)發(fā)1個(gè)bug管理系統(tǒng),該系統(tǒng)需要拿到公司的所有開(kāi)發(fā)和測(cè)試人員的信息胯陋,這樣開(kāi)發(fā)和測(cè)試人員不用注冊(cè)都可以登錄進(jìn)去了蕊温,這應(yīng)該很好理解。

那么這些人員的信息儲(chǔ)存在哪里呢遏乔?一般存儲(chǔ)在hr系統(tǒng)里∈偃酰現(xiàn)在的需求更加明確了,我們要到hr系統(tǒng)中去拿到人員信息按灶,獲取hr系統(tǒng)中的人員資源症革。

怎么拿呢?很多種方式鸯旁,可以直接把hr系統(tǒng)的數(shù)據(jù)庫(kù)拷貝一份放到bug管理系統(tǒng)里噪矛,不過(guò)這樣不好量蕊,因?yàn)閿?shù)據(jù)的同步會(huì)有點(diǎn)麻煩;還可以直接連hr系統(tǒng)的數(shù)據(jù)庫(kù)去查艇挨,這樣也不太好残炮,這樣我們就需要了解hr系統(tǒng)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)和邏輯,一旦hr系統(tǒng)的數(shù)據(jù)字段發(fā)生改變缩滨,bug管理系統(tǒng)也要去該势就,以便同步。

比較好的做法是脉漏,hr系統(tǒng)暴露一些接口苞冯,通過(guò)這些接口去獲取人員信息資源,這樣bug系統(tǒng)就不需要關(guān)心hr系統(tǒng)的數(shù)據(jù)存儲(chǔ)實(shí)現(xiàn)了侧巨。

這些接口可能是這樣的:

  • 登錄的接口舅锄,提供人員的用戶名和密碼,去hr系統(tǒng)中判斷該人員是否存在司忱,如果存在驗(yàn)證用戶名和密碼皇忿,如果驗(yàn)證通過(guò)就返回1個(gè)token,該token就是這個(gè)人員的通行證坦仍,通過(guò)token可以登錄到bug管理系統(tǒng)中去鳍烁;
  • 獲取人員信息的接口,返回該人員的職位:測(cè)試還是開(kāi)發(fā)繁扎,以及用戶名老翘,昵稱(chēng)等信息;

綜上:接口可以理解成是不同系統(tǒng)或模塊之間資源交流方式锻离。

接口測(cè)試實(shí)際上是黑盒測(cè)試铺峭,基本的測(cè)試思路是根據(jù)輸入和輸出判斷被測(cè)系統(tǒng)或?qū)ο蟮倪壿嫛+@取人員的信息汽纠,我需要把人員的用戶名傳給hr系統(tǒng)接口卫键,這樣hr系統(tǒng)的接口會(huì)返回給我用戶的一些更加具體的信息。這里的輸入是用戶名虱朵,輸出是用戶的詳細(xì)信息莉炉。

既然是接口獲取和操作資源的方式,而大部分系統(tǒng)和產(chǎn)品中碴犬,資源一般都是產(chǎn)品的核心絮宁,比如微信核心資源就是通訊錄關(guān)系鏈和聊天記錄等,因此資源是必測(cè)的服协。

另外接口中大部分的內(nèi)容是數(shù)據(jù)绍昂,通過(guò)數(shù)據(jù)的對(duì)比我們能推測(cè)到系統(tǒng)和產(chǎn)品的邏輯,測(cè)接口就是測(cè)邏輯。

最后接口中的返回相對(duì)單純窘游,不像web頁(yè)面唠椭,html代碼中有太多ui的東西,ui最不穩(wěn)定忍饰,變化太快贪嫂,接口相對(duì)穩(wěn)定一點(diǎn)點(diǎn),但是里面的干擾信息更少艾蓝,斷言相對(duì)容易很多力崇。

請(qǐng)看以下一個(gè)案例,如下圖一個(gè)提現(xiàn)功能

image

比如這個(gè)輸入框赢织,平常拿到這個(gè)web頁(yè)面亮靴,會(huì)對(duì)輸入框做用例設(shè)計(jì):

  • 輸入一個(gè)負(fù)數(shù)(如:-100),點(diǎn)提交
  • 輸入金額為0(如:0)敌厘,點(diǎn)提交
  • 輸入金額為0-100的數(shù)(如:20),點(diǎn)提交
  • 輸入金額為100(如:100)朽合,點(diǎn)提交
  • 輸入金額大于100(如:108)俱两,點(diǎn)提交
  • 輸入1位小數(shù)(如:10.1),點(diǎn)提交
  • 輸入2位小數(shù)(如:10.12)曹步,點(diǎn)提交
  • 輸入3位小數(shù)(如:10.123)宪彩,點(diǎn)提交

按照這個(gè)等價(jià)類(lèi),邊界值用例測(cè)完讲婚,頁(yè)面上不能輸入負(fù)數(shù)和大于3位數(shù)小數(shù)點(diǎn)尿孔,然后就可以上線了。
然而筹麸。活合。。突然有一天數(shù)據(jù)庫(kù)里面插入了一個(gè)提現(xiàn)金額為負(fù)數(shù)(-100)物赶,于是整個(gè)部門(mén)炸鍋了白指,首先找到測(cè)試(背鍋)去復(fù)現(xiàn)問(wèn)題,測(cè)試在頁(yè)面上反復(fù)輸入負(fù)數(shù)酵紫,無(wú)法提交告嘲,認(rèn)為沒(méi)問(wèn)題啊奖地!

首先前端開(kāi)發(fā)對(duì)輸入框是做了限制的橄唬,前端的web開(kāi)發(fā)肯定沒(méi)問(wèn)題,這個(gè)鍋前端開(kāi)發(fā)MM不背参歹。那么如果別人用戶不通過(guò)你的web頁(yè)面仰楚,直接發(fā)請(qǐng)求提交了呢?
納尼5姘ぁG洹!不通過(guò)頁(yè)面也能提交稠诲。捎泻。飒炎。這就是我們接下來(lái)要提到的接口測(cè)試了。

接口測(cè)試能發(fā)現(xiàn)哪些問(wèn)題

這個(gè)問(wèn)題其實(shí)回到起來(lái)很簡(jiǎn)單笆豁,只要做過(guò)接口測(cè)試的郎汪,總能發(fā)現(xiàn)幾個(gè)BUG吧,把你平常發(fā)現(xiàn)的bug說(shuō)2-3個(gè)就可以了闯狱。
面試官出這個(gè)題煞赢,主要是想知道你是不是真的做過(guò)接口測(cè)試,畢竟現(xiàn)在很多小伙伴簡(jiǎn)歷都是寫(xiě)的假的(你要不寫(xiě)估計(jì)面試機(jī)會(huì)都沒(méi)有哄孤,沒(méi)辦法照筑,為了生存,能理解)
比如上面說(shuō)的瘦陈,提現(xiàn)輸入框凝危,在頁(yè)面上輸入負(fù)數(shù),肯定是無(wú)法提交過(guò)去(前端頁(yè)面會(huì)判斷金額)晨逝,如果我不走前端蛾默,直接用接口工具發(fā)請(qǐng)求,輸入一個(gè)負(fù)數(shù)過(guò)去捉貌。
(假設(shè)服務(wù)端沒(méi)做提現(xiàn)金額數(shù)據(jù)判斷)
余額=當(dāng)前余額(100)-提現(xiàn)金額(-100)支鸡,那么提現(xiàn)-100,余額就變成200了趁窃,也就是越提現(xiàn)牧挣,余額越大了

可以用接口工具去直接請(qǐng)求接口,也可以fiddler抓包醒陆,抓到接口后修改金額為負(fù)數(shù)

image

所以浸踩,接口測(cè)試的必要性就體現(xiàn)出來(lái)了:
1.可以發(fā)現(xiàn)很多在頁(yè)面上操作發(fā)現(xiàn)不了的bug
2.檢查系統(tǒng)的異常處理能力
3.檢查系統(tǒng)的安全性、穩(wěn)定性
4.前端隨便變统求,接口測(cè)好了检碗,后端不用變
5.可以測(cè)試并發(fā)情況,一個(gè)賬號(hào)码邻,同時(shí)(大于2個(gè)請(qǐng)求)對(duì)最后一個(gè)商品下單折剃,或不同賬號(hào),對(duì)最后一個(gè)商品下單
6.可以修改請(qǐng)求參數(shù)像屋,突破前端頁(yè)面輸入限制(如金額)

接口測(cè)試怎么測(cè)

  • 通過(guò)性驗(yàn)證:首先肯定要保證這個(gè)接口功能是好使的怕犁,也就是正常的通過(guò)性測(cè)試,按照接口文檔上的參數(shù),正常傳入奏甫,是否可以返回正確的結(jié)果戈轿。

  • 參數(shù)組合:現(xiàn)在有一個(gè)操作商品的接口,有個(gè)字段type阵子,傳1的時(shí)候代表修改商品思杯,商品id、商品名稱(chēng)挠进、價(jià)格有一個(gè)是必傳的色乾,type傳2的時(shí)候是刪除商品,
    商品id是必傳的领突,這樣的暖璧,就要測(cè)參數(shù)組合了,type傳1的時(shí)候君旦,只傳商品名稱(chēng)能不能修改成功澎办,id、名稱(chēng)金砍、價(jià)格都傳的時(shí)候能不能修改成功局蚀。

  • 接口安全:
    1、繞過(guò)驗(yàn)證捞魁,比如說(shuō)購(gòu)買(mǎi)了一個(gè)商品至会,它的價(jià)格是300元离咐,那我在提交訂單時(shí)候谱俭,我把這個(gè)商品的價(jià)格改成3元,后端有沒(méi)有做驗(yàn)證宵蛀,更狠點(diǎn)昆著,我把錢(qián)改成-3,是不是我的余額還要增加术陶?
    2凑懂、繞過(guò)身份授權(quán),比如說(shuō)修改商品信息接口梧宫,那必須得是賣(mài)家才能修改接谨,那我傳一個(gè)普通用戶,能不能修改成功塘匣,我傳一個(gè)其他的賣(mài)家能不能修改成功
    3脓豪、參數(shù)是否加密,比如說(shuō)我登陸的接口忌卤,用戶名和密碼是不是加密扫夜,如果不加密的話,別人攔截到你的請(qǐng)求,就能獲取到你的信息了笤闯,加密規(guī)則是否容易破解堕阔。
    4、密碼安全規(guī)則超陆,密碼的復(fù)雜程度校驗(yàn)

  • 異常驗(yàn)證:
      所謂異常驗(yàn)證,也就是我不按照你接口文檔上的要求輸入?yún)?shù)侥猬,來(lái)驗(yàn)證接口對(duì)異常情況的校驗(yàn)。比如說(shuō)必填的參數(shù)不填捐韩,輸入整數(shù)類(lèi)型的,傳入字符串類(lèi)型荤胁,長(zhǎng)度是10的,傳11仅政,總之就是你說(shuō)怎么來(lái),我就不怎么來(lái)圆丹,其實(shí)也就這三種,必傳非必傳辫封、參數(shù)類(lèi)型、入?yún)㈤L(zhǎng)度倦微。

  • 性能測(cè)試
    接口并發(fā)情況,如上面提到的:一個(gè)賬號(hào)欣福,同時(shí)(大于2個(gè)請(qǐng)求)對(duì)最后一個(gè)商品下單,或不同賬號(hào)拓劝,對(duì)最后一個(gè)商品下單
    接口響應(yīng)時(shí)間雏逾,響應(yīng)時(shí)間太長(zhǎng)了,肯定需要優(yōu)化郑临,一般都是毫秒級(jí)別

image

用什么工具測(cè)接口

  • postman: 推薦栖博。基本功能免費(fèi)牧抵。最簡(jiǎn)單的基于http接口的調(diào)試和測(cè)試工具;
  • jmeter:后置處理器配合斷言基本上可以滿足接口測(cè)試需求笛匙,就是測(cè)試報(bào)告要做二次開(kāi)發(fā)
  • 自己擼代碼:推薦侨把。配合類(lèi)似xunit測(cè)試框架,基本可以滿足一切需求妹孙;零基礎(chǔ)實(shí)現(xiàn)python接口自動(dòng)化視頻教程秋柄,一起擼代碼吧
  • soapui: 收費(fèi)的;
  • insomnia:強(qiáng)力推薦蠢正。postman的弱化版骇笔,基本功能免費(fèi),重要的是工具代碼開(kāi)源嚣崭,可以自己改笨触;
  • paw: 強(qiáng)力推薦。mac上最強(qiáng)雹舀,淘寶買(mǎi)個(gè)授權(quán)好像就百把塊錢(qián)芦劣;

WebService接口是如何測(cè)試的

webService接口用SoapUI

image

沒(méi)有接口文檔如何做接口測(cè)試

沒(méi)有接口文檔,那還能咋辦说榆,瞎測(cè)唄虚吟!一個(gè)公司的開(kāi)發(fā)流程里面,如果接口文檔都沒(méi)有签财,是無(wú)法展開(kāi)接口測(cè)試的串慰,你都不知道這個(gè)接口干什么的,也不知道具體每個(gè)字段代表什么意思唱蒸,那還測(cè)啥呢邦鲫?
--當(dāng)然,你肯定不能回答面試官不測(cè)(心理mmp神汹,臉上笑嘻嘻)庆捺,接下來(lái)就是扯犢子時(shí)間
1.沒(méi)有接口文檔,那就需要先跟開(kāi)發(fā)溝通慎冤,然后整理接口文檔(本來(lái)是開(kāi)發(fā)寫(xiě)的疼燥,沒(méi)辦法沧卢,為了唬住面試官蚁堤,先說(shuō)自己整理了)
2.沒(méi)有接口文檔,可以抓包看接口請(qǐng)求參數(shù)披诗,然后不懂的跟開(kāi)發(fā)溝通

本題主要靠情商立磁,通俗來(lái)說(shuō)就是忽悠能力,先唬住面試官了再說(shuō)唱歧,進(jìn)去了也是瞎測(cè)測(cè),隨時(shí)做好背鍋的準(zhǔn)備

在接口測(cè)試過(guò)程中几于,上下游接口有數(shù)據(jù)依賴(lài)如何處理

用一個(gè)全局變量來(lái)處理依賴(lài)的數(shù)據(jù),比如登錄后返回token,其它接口都需要這個(gè)token,那就用全局變量來(lái)傳token參數(shù)

依賴(lài)第三方數(shù)據(jù)的接口如何進(jìn)行測(cè)試

這個(gè)標(biāo)準(zhǔn)答案是:mock

接著面試官會(huì)問(wèn)你朽砰,如果mock的瞧柔,然后你就順著坑繼續(xù)挖睦裳,搭建mock服務(wù)廉邑,參考這篇【https://www.cnblogs.com/yoyoketang/p/9348552.html】

當(dāng)一個(gè)接口出現(xiàn)異常時(shí),你是如何分析異常的

1.抓包肺素,用fiddler工具抓包倍靡,或者瀏覽器上f12,app上的話课舍,那就用fiddler設(shè)置代理,去看請(qǐng)求報(bào)文和返回報(bào)文了
2.查看后端日志捡需,xhell連上服務(wù)器站辉,查看日志

如何模擬弱網(wǎng)測(cè)試

fiddler和charles都可以模擬弱網(wǎng)測(cè)試饰剥,平常說(shuō)的模擬丟包摧阅,也是模擬弱網(wǎng)測(cè)試

如何分析一個(gè)bug是前端還是后端的

平常提bug的時(shí)候,前端開(kāi)發(fā)和后端開(kāi)發(fā)總是扯皮顾孽,不承認(rèn)是對(duì)方的bug
這種情況很容易判斷,先抓包看請(qǐng)求報(bào)文太颤,對(duì)著接口文檔盹沈,看請(qǐng)求報(bào)文有沒(méi)問(wèn)題乞封,有問(wèn)題就是前端發(fā)的數(shù)據(jù)不對(duì)
請(qǐng)求報(bào)文沒(méi)問(wèn)題,那就看返回報(bào)文锚贱,返回的數(shù)據(jù)不對(duì)拧廊,那就是后端開(kāi)發(fā)的問(wèn)題咯


image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末吧碾,一起剝皮案震驚了整個(gè)濱河市倦春,隨后出現(xiàn)的幾起案子落剪,更是在濱河造成了極大的恐慌,老刑警劉巖呢堰,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件枉疼,死亡現(xiàn)場(chǎng)離奇詭異往衷,居然都是意外死亡严卖,警方通過(guò)查閱死者的電腦和手機(jī)哮笆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)福铅,“玉大人项阴,你說(shuō)我怎么就攤上這事环揽。” “怎么了汛兜?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵粥谬,是天一觀的道長(zhǎng)辫塌。 經(jīng)常有香客問(wèn)我臼氨,道長(zhǎng),這世上最難降的妖魔是什么巢寡? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任抑月,我火速辦了婚禮舆蝴,結(jié)果婚禮上洁仗,老公的妹妹穿的比我還像新娘。我一直安慰自己叫胖,他們只是感情好她奥,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著绷跑,像睡著了一般砸捏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上吩谦,一...
    開(kāi)封第一講書(shū)人閱讀 51,365評(píng)論 1 302
  • 那天式廷,我揣著相機(jī)與錄音芭挽,去河邊找鬼。 笑死蠕趁,一個(gè)胖子當(dāng)著我的面吹牛俺陋,可吹牛的內(nèi)容都是我干的昙篙。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼缴挖,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼映屋!你這毒婦竟也來(lái)了棚点?” 一聲冷哼從身側(cè)響起湾蔓,我...
    開(kāi)封第一講書(shū)人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎么库,沒(méi)想到半個(gè)月后甘有,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體葡缰,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡泛释,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年怜校,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片魂贬。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡付燥,死狀恐怖键科,靈堂內(nèi)的尸體忽然破棺而出漩怎,到底是詐尸還是另有隱情,我是刑警寧澤牙言,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布咱枉,位于F島的核電站徒恋,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏亿乳。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一障陶、第九天 我趴在偏房一處隱蔽的房頂上張望抱究。 院中可真熱鬧带斑,春花似錦、人聲如沸妈候。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至亲怠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間团秽,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工踪栋, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留图毕,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓囤官,卻偏偏與公主長(zhǎng)得像蛤虐,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子刑顺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

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