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