【編測編學】接口測試面試題必背(下)

1、什麼是DNS?
DNS 是域名系統 (Domain Name System),DNS是用來做域名解析的,它會在你上網輸入網址後,把它轉換成IP,然後去訪問對方服務器;沒有它,你想上百度就要記住百度的IP,但有了DNS的處理,你只需要記住對應網站的域名,即網址就可以了。
2、請問你們公司是如何做接口測試的?
接口測試實際跟一般測試不同就是測試用例的設計部分。
①獲取接口文檔。
②設計接口測試功能用例(主要從用戶角度出發看接口能否實現業務需求,用例設計就是黑盒用例那一套)。
③各種入參驗證(正常情況,異常情況包括輸入參數個數不對,類型不對,可選/必選,還有考慮參數有互斥或關聯的情況)。
④接口返回值各種驗證(符合接口文檔需求)
⑤瞭解接口實現邏輯,實現邏輯覆蓋(語句/條件/分支/判定/…)
⑥接口能併發執行嗎、安全嗎,性能滿足要求嗎?
⑦採用工具或者自寫代碼來驗證。
⑧發現問題跟功能測試一樣,該提bug提bug,該跟蹤狀態的跟蹤狀態。
3、怎麼設計接口測試用例?
①是否滿足前提條件
有些接口需要滿足前提,纔可成功獲取數據。常見的,需要登錄Token
逆向用例:針對是否滿足前置條件(假設爲n個條件),設計0~n條用例
②是否攜帶默認值參數
正向用例:帶默認值的參數都不填寫、不傳參,必填參數都填寫正確且存在的“常規”值,其他不填寫,設計1條用例
③業務規則、功能需求
這裏根據時間情況,結合接口參數說明,可能需要設計N條正向用例和逆向用例
④參數是否必填
逆向用例:針對每個必填參數,都設計1條參數值爲空的逆向用例
⑤參數之間是否存在關聯
有些參數彼此之間存在相互制約的關係
⑥參數數據類型限制
逆向用例:針對每個參數都設計1條參數值類型不符的逆向用例
⑦參數數據類型自身的數據範圍值限制
正向用例:針對所有參數,設計1條每個參數的參數值在數據範圍內爲最大值的正向用例
4、你做接口測試,測什麼?
可用性測試
根據約定的協議、方法、格式內容,傳輸數據到接口經處理後返回期望的結果:
• 接口功能是否正確實現;
• 返回值測試 - 返回值除了內容要正確,類型也要正確,保證調用方能夠正確地解析;
• 參數值邊界值、等價類測試;
錯誤和異常處理測試
• 輸入異常值(空值、特殊字符、超過約定長度等),接口能正確處理,且按預期響應;
• 輸入錯誤的參數,接口能正確處理,並按預期響應;
• 多輸入、少輸入參數,接口能正確處理,且按預期響應;
• 錯誤傳輸數據格式(如json格式寫成form格式)測試;
安全性測試,主要指傳輸數據的安全性:
• 敏感數據(如密碼、祕鑰)等是否加密傳輸;
• 返回數據是否含有敏感數據,如用戶密碼、完整的用戶銀行賬號信息等;
• 接口是否對傳入的數據做安全校驗,如身份ID加token類似校驗;
• 接口是否防止惡意請求(如大量僞造請求接口致使服務器崩潰);
性能測試,如接口的響應時間、併發處理能力、壓測處理情況:
• 併發請求相同的接口(特別爲POST請求),接口的處理情況(如插入了相同的記錄導致數據出錯,引發系統故障);
• 接口響應時長在用戶可忍受的範圍內;
• 對於請求量大的接口做壓測,確定最大的瓶頸點是否滿足當前業務需要;
5、平常用什麼工具測接口的?
答:常用http協議接口測試工具,如:postman、fiddler、jmeter;webService接口用SoapUI、jmeter等。
6、沒有接口文檔,如何做接口測試?
用抓包工具把接口抓取處理,然後針對性進行測試;接口中字段信息不清楚的,找時間集中尋求開發解答。
7、在手工接口測試或者自動化接口測試的過程中,上下游接口有數據依賴如何處理?
用一個全局變量來處理依賴的數據,比如登錄後返回token,其它接口都需要這個token,那就用全局變量來傳token參數。
8、依賴於第三方數據的接口如何進行測試?
mock
接着面試官會問你,如果mock的,然後你就順着坑繼續挖,搭建mock服務等
9、接口測試中,依賴登錄狀態的接口如何測試?
依賴登錄狀態的接口的本質上是在每次發送請求時需要帶上session或者cookie才能發送成功,在構建POST請求時添加必要的session或者cookie
10、如何模擬弱網做測試?
Fiddler和charles都可以模擬弱網測試,平常說的模擬丟包,也是模擬弱網測試。
11、你平常做接口測試的過程中發現過哪些bug?
常規錯誤,接口沒實現,沒按約定返回結果,邊界值處理出錯等。
輸入異常值(空值、特殊字符、超過約定長度等),接口拋錯,沒做封裝處理;
輸入錯誤的參數、多輸入、少輸入參數,接口可能出現的錯誤;
安全性問題,如明文傳輸、返回結果含有敏感信息,沒對用戶身份信息做校驗,沒做惡意請求攔截等;
性能問題,如接口併發插入多條相同操作,響應時間過長,接口壓測出現瓶頸等;
12、當一個接口出現異常時候,你是如何分析異常的?
先抓包,用fiddler(charles)工具抓包,或者瀏覽器上F12調試工具;APP上的話,那就用Fiddler做代理,通過手機設置代理去看請求和返回報文;
查看後端日誌,如Linux系統通過xhell連上服務器,查看接口日誌,查看是否有報錯信息(命令:tail -f 日誌文件);
13、如何分析一個bug是前端還是後端的?
這種情況很容易判斷,先抓包看請求報文,對着接口文檔,看請求報文有沒問題,有問題就是前端發的數據不對;
請求報文沒問題,那就看返回報文,返回的數據不對,那就是後端開發的問題咯。
14、你們做接口測試自動化嗎?
現在針對大量應用,普遍推崇做接口測試自動化,維護成本低、收益高。常用的工具有許多,如Jmeter、Robot Framework、pytest等。









































































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