阿里面試官:這8道接口測試面試題!軟件測試工程師的你如果都答好,I want you!

接口測試常見的問題了。

大家乍一看!

接口測試面試題

這幾個問題,能答出來幾個?有沒有8個都能夠完美的答出來的?在留言區(qū)打出你的數(shù)字。(0~8)

這些問題你回答起來,不要吞吞吐吐只說幾個關(guān)鍵字。你要從多方面去給面試官總結(jié)分析那些場景,如何去做的,遇到的問題……

接口測試的重要性,相信不用我多說了。接口測試是現(xiàn)在軟件測試工程師一個加分項。因為很多朋友一開始做了幾年的軟件測試都是在做功能測試,做界面UI的測試,然而沒有做過接口測試。(很正常很普遍)

那么接口測試它在企業(yè)中,能達到非常好的收益。后端、服務(wù)端的測試,特別是現(xiàn)在!像是前面幾年,物聯(lián)網(wǎng)公司沒有做一個前后端分離,現(xiàn)在基本上都是微服務(wù)架構(gòu),前后端分離。接口非常重要,現(xiàn)在2020年了,未來幾年你去做測試,很多都是接口。

一個接口它可以支持安卓、IOS、H5、Web端。而且接口測試可以測很多你在界面上無法去測試的一些范圍和類型。

我們來看一看這幾個問題,從簡單的來。

第一題,大家絕大部分都能夠答得出來

1.目前市面上流行的接口大多有哪幾種協(xié)議的接口?

大家可能就非常了解,Http、Https、RPC、Websocket、還有一個Dubbo接口,這些類型百度一下也都能夠比較全面的得到答案。

所以我一直傳輸給大家一個觀念就是說,假如面試官問你這個問題,你不僅要說有Http、Https……說完這幾種類型,你還可以多說幾句,比如說我之前在項目中測試過Http的,怎么測試的,用什么測試工具測試的,這是我一直傳輸給大家的一個面試小技巧。因為我之前在企業(yè)中做為面試官的時候,當聽到這種面試題回答的時候,會更加分。

因為如果我問你一個問題,你答Http、Https就沒了,那么說明你這個人的積極性和你的一個綜合能力、見識都不是非常的亮眼突出。理解我的意思嗎?不管面試官問你什么問題,你都要非常全面的去解答。

比如說第二個問題

2.http協(xié)議有什么特點,能說說這些特點體現(xiàn)在哪些方面嗎?

可能會有朋友就說,安全。

Http就安全了嗎?(Https才相對安全)

a.無狀態(tài)

b.靈活

c.無連接

d.簡單快速

那么我又來問大家,這些狀態(tài)這些特點,具體體現(xiàn)在哪些方面?

可能問到這個問題的后面部分,有些朋友就要頭皮發(fā)麻了。

它為什么叫做無狀態(tài),為什么靈活?可能像這種問題就又刷下去了一大批人。有很多朋友特點可能說了一個,但是這些特點具體體現(xiàn)在哪些方面。你如果沒有答出來,那面試官就覺得你沒有做過很多的接口測試,你對接口根本不是很了解,那你對接口既然不了解,做過的測試也不多,那你還說你做過接口測試,那都只是片面的。

那首先它無狀態(tài),靈活,說一個最簡單的。靈活,大家都知道,像Http類型的接口我們用Postman來做測試,它為什么比較靈活?它支持的參數(shù)類型是任意類型

這個就是我之前搭建的接口項目

它來做測試的時候,這個參數(shù)類型,表單,文件上傳類型,還有JSON類型,Text文本,JS,XML,HTML


你的參數(shù)可以支持任意類型

你的參數(shù)可以支持任意類型,所以說它比較靈活。

那為什么說它簡單快速?你只需要傳一些接口的請求方法和請求路徑,通信速度非??欤湍芙o到你響應(yīng)的數(shù)據(jù)。

比如說很簡單,我之前寫的一個demo接口


你只需要告訴我,這個地址和這個接口的路徑,或者說接口的名稱,我就能請求這個接口了,就能快速的拿到下面的值。那是不是說它非常的簡單快速呢,不像Dubbo接口不像Websocket,不像其他的接口,稍微你要去測試,去請求可能難一點。這就說明它簡單快速。

無狀態(tài)。比如說你現(xiàn)在要去支付一筆訂單,你要點一個外賣,那么你支付訂單的時候,那么我怎么知道你的購物車里面加了哪些東西呢?其實你加購物車、下訂單、登錄其實都是相應(yīng)的接口,他們之間其實是沒有一個實物處理記憶能力的,Http協(xié)議它請求成功之后沒有記憶了。所以說你每次去請求新的接口,它都有一個新的請求,那么為什么現(xiàn)在這種下單、登錄加購物車能夠非常靈活的應(yīng)用起來呢?這就還有它中間的一些機制,會用到一些Session、Cookie、和一些Token,所以這就是它的一個原理。

那么無連接。怎么理解?

那我自己的一個項目來說吧!這是之前搭建的一個測試項目管理平臺



那么每次我們?nèi)フ埱蟮臅r候,Network刷新一下,它可能去請求了很多個接口,所以說每次連接它只處理一個請求。服務(wù)端當處理其中一個接口的時候,它之請求這一個,請求完之后,它就馬上斷開連接,節(jié)省這個傳輸?shù)臅r間,所以這是一個無連接。

所以這些特點體現(xiàn)在哪些方面,你能說一說的話,說明你對這個接口你比較有心得了。有收獲記得點贊支持一下!

3.postman中如何實現(xiàn)接口之間的關(guān)聯(lián)?

我想這個可能還不是最難的問題,可能大家用過,像第二個問題比較綜合性的往往是大家比較薄弱的東西。


比如說這是一個正規(guī)的接口文檔,有哪些接口就用Postman全部寫一遍,然后如何接口之間的關(guān)聯(lián),這里會用到這些東西。


怎么設(shè)置關(guān)聯(lián),將數(shù)據(jù)解析稱Json格式,獲取topic_id的值,設(shè)置成環(huán)境變量,等等。這就能實現(xiàn)接口之間的關(guān)聯(lián)。


然后你在這里會發(fā)現(xiàn),這里有很多環(huán)境變量或者全局變量,這就是接口之間的關(guān)聯(lián)。

5.若請求的接口需要先登錄后方可請求,如何進行接口測試?

比如說有些接口需要先登錄才請求,那如何來進行接口測試?先登錄,比如我問你這個問題你怎么來回答?

因為很多需要請求的接口它需要先認證才能去請求。

Token?

這個回答不對,Token從哪里來?你需要去請求什么樣的接口,你的登錄接口或者去哪里去拿到,這個問題還是比較簡單的,大家可以做為作業(yè)區(qū)用心學(xué)習(xí)一下。

7.dubbo接口如何測試?

那我們來看看像這種Dubbo如何去進行測試?這個有了解過嗎?因為現(xiàn)在越來越多的公司可能不僅用Http他還會用到Dubbo接口。dubbo接口是我們(用的阿里云服務(wù)器)阿里巴巴開源的一個高性能的服務(wù)框架,Dubbo是經(jīng)歷過雙十一的一個摧殘優(yōu)秀的RPC框架,很多公司都在用了,但是你又沒有聽說過,額,怎么還會有這個接口?。磕懵牰紱]有聽說過,那么你在面試官那里……因為面試的公司很有可能就是做的Dubbo接口,那你來做接口測試,你連Dubbo都不知道,那我是不是又要培養(yǎng)你一個月?告訴你什么是Dubbo,怎么測試Dubbo,還說讓你來做Dubbo接口自動化,那更加。就算招你進去了,你也是一個新手,菜鳥的身份進去的,你的工資是很難提上去的。

比如他工資本來開的是15K-20K,那么就算你能面試進去了,你最多最多拿到15K。那還要看你的運氣,看你其他方面的一個加分項,來抵消這個暫時的短板。

面試官:什么是Dubbo?

我:我、我、我抓一抓后腦勺,摸摸手臂,扣一扣指甲。

然后就是說……吞吞吐吐答不出來(內(nèi)心獨白:到底什么時候結(jié)束這個面試,你趕快把簡歷還給我吧,QAQ)

我還準備去下一家公司去“吹牛皮”也許下一家公司面試官不會問到我不會的問題。

大家不要抱著這樣的心態(tài),我發(fā)現(xiàn)做測試真的這樣一個現(xiàn)狀,很多朋友就覺得能混,我現(xiàn)在做功能測試不用任何的技術(shù),能拿個7.8K,一萬的工資,也可以。至少要比其他的行業(yè)的底薪是要高一些。

所以就存在這個現(xiàn)象,他不會很多的技術(shù),沒有很多的技能他也能混,或者運氣好,在一線城市需求多。為什么很多測試在一線城市能夠拿到10-15K,他不會任何的技術(shù),因為一線城市的需求多很多。

但是你想要突破,想突破15K,突破18K那就難上加難了,而且如果你從大城市工作三到五年,你再回去到二線城市去做測試,那么你還想來混,那么你的工資就可能只有5-6K了,而且你沒有任何的技術(shù),你說你從大城市回來的,都覺得有點不好意思說。

你從大城市回來的,你帶回來了什么先進的概念,帶來了什么先進的技術(shù),是不是?

說遠了,回歸正題。


Dubbo的一個測試關(guān)鍵,搭建消費者,你需要去理解的Dubbo接口的基礎(chǔ)架構(gòu)基礎(chǔ)服務(wù)到底是一個什么樣的原理。(有一個接口測試訓(xùn)練營有講到這個原理以及如何去測試,需要視頻教程可以免費領(lǐng)取)


我在這個服務(wù)器上搭建了一個Dubbo服務(wù)


最簡單的方式用,Telnet,我的IP地址,然后加一個端口,其實測試起來和Http原理都一樣。

開啟服務(wù)之后,進去之后就是一個Dubbo

我們還可以用代碼來寫


這里封裝了一個Dubbo的方法,類。需要完整視頻版教學(xué)可以公眾號主頁點擊領(lǐng)取資料即可。

8.接口測試斷言從哪些方面去設(shè)計?

如果我把這個接口測試改成功能測試,功能測試斷言從哪些方面去設(shè)計?

你要怎么去校驗一個測試用例,我覺得這個是很多做測試的朋友最擅長的東西,那么我問接口測試呢?

其實接口測試也屬于功能測試,也是黑盒測試。


比如說這個接口,我去發(fā)送一個請求,你怎么去校驗這個接口,我怎么去判斷我這個用例到底是不是對的,我這個用例到底是驗證了什么東西

到底什么是401,什么情況下會401,或者是403 Forbidden到底是什么情況。

1.狀態(tài)碼

它會不會返回200,會不會返回401,403,返回500等等

2.返回值

返回值比如我拿一個正確的吧,狀態(tài)碼200,返回了一大堆的值,那么這個返回值里面就有很多東西需要去校驗了,怎么去校驗這個返回值?

,

3.而且返回值里面很多數(shù)據(jù)是動態(tài)的,這個時候要怎么去設(shè)置?要考慮數(shù)據(jù)庫校驗吧,很多字段的值來源于數(shù)據(jù)庫

非關(guān)系型數(shù)據(jù)庫(Mongo)

4.空校驗,異常校驗,

5.冪等性

冪等性的校驗在接口測試是一個常見的校驗,比如說你一個接口我調(diào)用一次正常了,你能保證它之后調(diào)用都是正常的嗎?這些數(shù)據(jù)、參數(shù)幾百個不同類型的參數(shù),我調(diào)用一百次,會是一個什么樣的情況?

冪等性,我重復(fù)執(zhí)行一百次,它會返回什么。

或者我去買一個外賣,下單,但是我不支付,是不是我點擊下單一百次,它會不會產(chǎn)生很多垃圾數(shù)據(jù)在我們數(shù)據(jù)庫里面。

其實還有很多需要你去測試的,為什么接口測試這么重要,要測試的東西和功能測試一樣方方面面都是需要考慮到的。

6.流程節(jié)點限制

舉一個異常例子吧,比如說你在支付的時候,我只下單沒有付錢,那么像這個接口的返回值。我先調(diào)用下單的接口,我拿到一些數(shù)據(jù)再去調(diào)用別人正常支付后的接口。會是一個什么樣的場景,有沒有做一些限制。

接口測試很容易做一個數(shù)據(jù)驅(qū)動,做一些自動化,我們都要去盡可能的全面的覆蓋做一個接口自動化,那么你的效益是非常高的。而且你把這一套全部做成自動化,不管是后端開發(fā)人員還是前端開發(fā)人員還是測試,你在企業(yè)中本人價值也是非常高的。

如果面試官覺得你答對了,再深入一點,什么是異常校驗?就是來評判你能不能達到一個高級測試工程師。

異常校驗

數(shù)據(jù)異常,環(huán)境異常,前置條件異常,大家都知道做過接口測試的朋友都知道接口有很多的前置條件,前置條件連接數(shù)據(jù)庫或者數(shù)據(jù)的預(yù)制,那么這些前置條件有沒有異常導(dǎo)致我們接口異常。

所以像這種問題,你如果沒有真實的項目經(jīng)驗,你絕對總結(jié)不出來也回答不出來。

文章首發(fā)于公眾號:程序員一凡

轉(zhuǎn)載請注明出處!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容