2020非常全的接口測試面試題及參考答案-軟件測試工程師沒有碰到算我輸!

一、前言

接口測試最近幾年被炒的火熱了,越來越多的測試同行意識到接口測試的重要性。接口測試爲什麼會如此重要呢? 主要是平常的功能點點點,大家水平都一樣,是個人都能點,面試時候如果問你平常在公司怎麼測試的,你除了說點點點,還能說什麼呢,無非就是這個項目點完了點那個項目, 這就是爲什麼各行各業的只要手指能點得動的人都來轉行軟件測試了。面試的時候面試官希望你除了點點點,還能更深入一點的思考頁面上看不到的功能,也就是接口測試了。接口測試可不是下圖的USB接口哈,接口是看不見的,但是可以訪問!

二、2020非常全的接口測試面試題及參考答案

1、你們公司的接口測試流程是怎樣的?(有沒有感覺熟悉,貌似在哪裏聽過)

接口測試我們是在XX項目做的,主要有XX接口,XX接口,XX接口等。
1、首先是從開發那裏拿到API接口文檔,瞭解接口業務、包括接口地址、請求方式,入參、出參,token鑑權,返回格式等信息。
2、然後使用Postman或Jmeter工具執行接口測試,一般使用Jmeter的步驟是這樣的:
     1、首先新建一個線程組。
     2、然後就是新建一個HTTP請求默認值。(輸入接口服務器IP和端口)
     3、再新建很多HTTP請求,一個請求一個用例。(輸入接口路徑,訪問方式,參數等。)
     4、然後創建斷言和查看結果樹。
3、最後調試並執行用例,最後編寫接口測試報告
4、其實我們做接口的時候也碰到了蠻多的問題,都是自己獨立解決的,比如返回值亂碼(修改jmeter的配置文件爲UTF-8編碼方式),比如需要登錄後才能取得token鑑權碼並且這個鑑權碼在下面的請求中需要用到(使用正則表達式提取器提取token的值等。

2、請簡述一下cookie、session以及token的區別(有沒有感覺整個是萬年不變的面試題)

(1)cookie數據存放在客戶的瀏覽器上,session數據放在服務器上。而token是接口測試時的鑑權碼,一般情況下登陸後纔可以獲取到token,然後在每次請求接口時需要帶上token參數。

(2)cookie不是很安全,別人可以分析存放在本地的cookie並進行cookie欺騙,考慮到安全應當使用session,session會在一定時間內保存在服務器上。當訪問增多,會比較佔用你服務器的性能,考慮到減輕服務器性能方面應當使用cookie

(3)可以將登陸信息等重要信息存放爲session;其他信息需要保存,可以放在cookie

3、接口測試如何設計測試用例?(必問,有沒有感覺答得整個人都不好了?)

接口測試一般考慮入參形式的變化和接口的業務邏輯,一般設計接口測試用例採用等價類、邊界值、場景法居多!

接口測試設計測試用例的思路如下:
1.接口業務邏輯測試?(正例)
    接口邏輯測試是指根據業務邏輯、輸入參數、輸出值的描述,對正常輸入情況下所得的輸出值
    是否正確的測試,也就是測試對外提供的接口服務是否正常工作。
2.模塊接口測試?(反例)
    模塊接口測試是爲了保證數據的安全及程序在異常情況下的邏輯的正確性而進行的測試。?
    模塊接口測試的主要包括以下幾個方面:?
    1)鑑權碼token異常(鑑權碼爲空<沒有鑑權碼>,錯誤的鑑權碼,過期的鑑權碼)。
    2)其他參數異常。
        1、必填項檢查
        2、參數的長度、類型、格式異常:
                常規參數:(數字、字符串、日期)
                參數長度:6-18位。或身份證、電話的長度。
                參數類型:數字(精度),字母,中文,帶空格的參數,特殊字符。
                日期格式:日期:年月日,年月日時分秒,日期格式(包括/,-,:等)。
    3)錯誤碼異常覆蓋。
    4)接口測試其他的關注點
        接口有翻頁時,頁碼與頁數的異常值測試
        數據庫的增刪改查,比如一個post接口操作完成後,通過列表頁接口看下新的數據是否和剛纔的post一致
        接口返回的圖片地址能否打開,圖片尺寸是否符合需求
        當輸出參數有聯動性時,需要校驗返回兩參數的實際結果是否都符合需求。
        所有列表頁接口必須考慮排序值
        所有功能都要考慮兼容舊版本

4、接口測試執行中比對數據庫嗎?

肯定啊,因爲接口返回值的數據來源於數據庫,接口對數據的操作還要進行深層次的數據庫檢查!

5、談談你對HTTP協議的瞭解?

超文本傳輸協議,端口爲80,特點(無記憶功能、快速)是由請求和響應兩部分組成請求由請求頭、請求行、請求正文組成;響應是由響應頭、響應行、響應正文組成,之前我們公司的接口是採用https協議的。

https http+ssl協議 端口443 面向安全的超文本傳輸協議

6、get和post請求有什麼區別?

get和post請求都是客戶端向服務器提交的一種請求方式

get是明文傳輸參數、傾向於請求服務器資源。比如打開網站

post傳輸數據不可見,安全性高,傾向於向服務器提交數據,比如註冊等

7、響應狀態碼有哪些?

1xx:指示信息--表示請求已接受,繼續處理

2xx:成功--表示請求已被成功接收、理解、接受

3xx:重定向--要完成請求必須進行更進一步的操作

4xx:客戶端錯誤--請求有語法錯誤或請求無法實現

5xx:服務器端錯誤--服務器未能實現合法的請求

8、在接口測試過程中發現的bug多不多?能舉幾個栗子?

這個問題其實回到起來很簡單,只要做過接口測試的,總能發現幾個BUG吧,把你平常發現的bug說2-3個就可以了。 面試官出這個題,主要是想知道你是不是真的做過接口測試,畢竟現在很多小夥伴簡歷都是寫的假的(你要不寫估計面試機會都沒有,沒辦法,爲了生存,能理解) 比如,提現輸入框,在頁面上輸入負數,肯定是無法提交過去(前端頁面會判斷金額),如果我不走前端,直接用接口工具發請求,輸入一個負數過去。 (假設服務端沒做提現金額數據判斷) 餘額=當前餘額(100)-提現金額(-100),那麼提現-100,餘額就變成200了,也就是越提現,餘額越大了。

9、接口測試中有哪些要注意的測試點?

11.1)接口中返回了圖片地址,要手工去進行圖片的測試(大小、內容)

11.2)接口完成查詢功能的時候,數據返回的排序顯示

11.3)接口測試的時候,關注參數的默認值、必填項

10、接口執行測試後返回結果做對比,一般比對哪部分內容?

之前必須要對比的就是返回狀態碼,其次再去對比返回其它關鍵內容

11、爲什麼開展接口測試?

13.1)接口測試屬於集成測試、測試介入越早、就越能在項目早期發現問題,其修復問題的成本越低

13.2)接口測試非常快速、UI自動化執行一個測試用例10S左右、接口測試用例執行的話,需要的時間是毫秒級的

12、之前在接口測試過程中,使用的工具是什麼?

postman或jmeter(5.1)

13、之前用過抓包工具沒有?如何使用的?

之前在項目中用過fiddler抓包工具進行HTTP協議請求的抓取

打開fiddler之後,默認瀏覽器配置了127.0.0.1  8888端口的代理,在fiddler設置好過濾策略後,打開需要進行抓包的網站進行操作,就可以進行抓包

14、json數據是什麼,你平時如何解析json數據?

一種開發常用的數據報文格式,由鍵值對和數組兩種格式構成。可以通過工具bejson網站等

15、postman你在工作中使用流程是什麼樣的?

1) 編寫好用例

2) 在postman先建好url環境變量

3) 根據接口用例所屬的模塊新建集合管理

4) 在集合中不同模塊下錄入測試用例

5) 錄入測試用例的時候根據預期結果在tests頁籤中增加斷言

6) 導出通過Newman去運行

16、postman中設置環境變量有什麼用?

在之前項目中,接口測試測試的環境有開發環境,測試環境等,爲了測試的時候方便,就在postman設置環境變量,到時所有接口都引用該環境變量,這樣就不用爲了切換環境導致每次都去修改被測系統接口的主機地址;點擊右上角環境變量管理按鈕-新建環境變量,在腳本中使用{{變量名}}去調用

17、在接口測試中關聯是什麼含義?如何用postman設置關聯?

關聯就是把上一個接口返回值的部分截取出來,作爲下一個接口的參數,能讓接口串聯運行

在postman中設置關聯的步驟如下:

1) 先通過正則表達式提取的方式或json取值的方式把下一個接口需要的信息從上一個接口截取出來

2) 使用設置全局變量的代碼把取出來的值保存到全局變量

3) 在下一個接口中,使用{{全局變量}}代替要替換的靜態值

18、postman支持什麼類型的協議測試?

http和https協議的

19、postman參數化有哪幾種方式?

內建變量、pre-scripts編寫js腳本、批量運行時導入csv或json格式的文件

20、Newman如何執行postman腳本?

Newman run 腳本名稱 也可以添加參數生成html報表等

21、jmeter之前用的是什麼版本?如何安裝的?

jmeter用的是5.1.1版本,安裝如下:

先在電腦上安裝jdk1.8或以上的版本,然後從官網下載最新的安裝包,解壓後,進行環境變量的配置,配置好後即安裝完成

22、在項目中如何用jmeter進行接口測試?

1) 把線程組數量設置爲1,循環次數設置爲1

2) 配置好全局變量URL通過配置元件---用戶自定義的變量添加

3) 增加配置元件http請求默認值,放置在用戶定義的變量之後

4) 添加事務控制器管理和組織測試用例

5) 在事務控制中添加http請求添加測試用例中的接口請求信息

6) 添加對應的斷言元件進行斷言

23、jmeter中如何設置斷言?

右擊請求---斷言---響應斷言---響應斷言界面輸入要檢查比對的項,設置好斷言後,執行接口測試如果是通過的,查看結果樹不會有任何提示,如果斷言失敗,就會有紅色報錯。如果接口返回的數據是json數據,也可以添加json斷言

24、jmeter中如何實現關聯?

先從上一個接口中通過正則表達式提取器或jsonpath解析器截取下一個接口需要的參數值保存到變量,然後在寫一個接口中通過${變量名}去獲取

25、jmeter添加http請求默認值元件有什麼作用?

添加並設置好後,相當於給所有的http請求取樣器都設置了默認值,既不用填寫取樣器中的比如主機地址、端口、代理等,都可以使用http請求默認值設置的

26、jmeter參數化的方式有哪幾種可以實現?

1) 配置元件---用戶定義的變量元件可以設置全局變量

2) 函數助手對話框中可以選擇比如隨機字符串、隨機日期、隨機數字作爲參數化

3) 可以使用csv文件作爲參數化,通過配置元件中的csv data set config元件進行設置即可

27. 總結
如果你覺得此文對你有幫助,如果你對此文有任何疑問,如果你對軟件測試、接口測試、自動化測試、面試經驗交流感興趣歡迎加入軟件測試技術羣:695458161,羣裏發放的免費資料都是筆者十多年測試生涯的精華。還有同行大神一起交流技術哦。

作者:諸葛
出處:https://blog.csdn.net/pengjiangchun
原創不易,歡迎轉載,但未經作者同意請保留此段聲明,並在文章頁面明顯位置給出原文鏈接。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章