接口測試面試題—第二版

  • 接口的加密測試中對稱加密與非對稱加密有什麼區別? 如何開展測試?
    • 對稱加密是最快速、最簡單的一種加密方式,加密(encryption)與解密(decryption)用的是一樣的密鑰(secret key),這種方法在密碼學中叫作對稱加密算法。
    • 非對稱加密爲數據的加密與解密提供了一個很是安全的方法,它使用了一對密鑰,公鑰(public key)和私鑰(private key)。私鑰只能由一方安全保管,不能外泄,而公鑰則能夠發給任何請求它的人。
  • 請詳細闡述接口測試和UI測試在測試活動中是如何協同測試的
    • 接口測試和UI測試這兩塊實際上是有一部分是重疊的,UI測試是經過前端寫的界面,來調用接口,而接口測試是直接調接口。因此排除前端的處理的邏輯和調用的正確性,在理論上接口測試是能夠覆蓋全部的UI測試。但實際過程當中,若是隻是在接口層覆蓋全部的業務流,在UI上只測試前端的邏輯,最終的結果可能會是忽視不少原有的功能點,致使了UI測試的不充分。因此存在多人分工且時間充分的時候能夠嘗試接口去作業務流的全覆蓋,不然不要輕易嘗試。
  • 在手工接口測試或者自動化接口測試的過程當中,上下游接口有數據依賴如何處理?
    • 在工具中可使用全局變量等方式將須要的數據進行傳送。
    • 依賴於第三方數據的接口如何進行測試
    • 可使用SoapUI等工具直接調用第三方數據接口的webservice,經過返回值來查看第三方數據的接口是否調用正常。
    • 也能夠利用一些MOCK的工具來模擬第三方的數據返回,最大限度的下降對第三方數據接口的依賴
    • mock主要用來開發須要依賴一部分接口,但對方沒有提供環境狀況下
    • 能夠利用一些MOCK工具(如:JSON Server、Easy Mock)來模擬第三方的數據返回,最大限度的下降對第三方數據接口的依賴http://www.javashuo.com/article/p-pvpjpnff-bu.html
  • 接口測試中依賴登陸狀態的接口如何測試?
    • 依賴登陸狀態的接口的本質上是在每次發送請求時須要帶上session與Cookie才能發送成功,在構建POST請求時添加必要的session,Cookie(添加cookie)
  • http接口測試和web Service接口測試區別是什麼
    • 區別是有的。主要是傳統ws有一套完整的協議標準。其中有soap協議,用來進行消息的傳遞。以傳統工業標準的ws返回數據爲例,返回結果須要包裝在一個soap協議指定的語法格式中。即便你只須要簡單的返回字符1,也須要包裝在協議種返回,協議描述了成功失敗否,結果值等。而普通的get,你輸出1,在調用端獲得字符1。
    • web service和http接口的區別在於:
    • 1.接口中實現的方法和要求參數一目瞭然
    • 2.不用擔憂大小寫問題。
    • 3.不用擔憂中文 urlencode 問題。
    • 4.代碼中不用屢次聲明認證(帳號,密碼)參數。
    • 5.傳遞參數能夠爲數組,對象等。
  • 設計接口測試用例例時,涉及的是電商系統,其中包括不少修改,如商品、商家、店鋪等等,針對這些數據的修改,會涉及到不少參數。如商品的名稱,商品的尺碼,商品的顏色等等。那在設計實現「修改」接⼝口時,如何肯定要傳哪些參數?是隻須要傳我要修改的參數,仍是所有參數都要傳?
    • 關鍵仍是看後臺邏輯實現。
    • 舉例:User有兩個屬性username,password
    • 後臺邏輯實現:update User set username=? where id=xxx;
    • 那,若是你只想更新username的時候,能夠不傳password,其值是保持不變的。
    • 後臺邏輯實現:udpate User set username=?,password=? where id=xxx;
    • 這種狀況下,即便你只想更新username,也須要傳password的值給後臺,否則password就會被更新爲空。
    • 此外,還有一些數據如id等,若是sql中沒有寫,那即便傳遞了本字段的參數,數據庫也不會更新。所以,在寫關於「修改」的接口時,須要考慮一下,後臺的邏輯是怎麼實現的,而後確認要傳遞哪些參數。
  •  目前接口文檔是由word格式管理理,因迭代快,產生不少文檔,分不不清哪些是不用的接口,哪些是正在用的接口,哪些是更新後的接口,文檔雜亂,另外因是word格式管理,不方便查詢,如何管理?每次查看接口文檔須要下載多個word,不能避免下載操做查看,效率不高,如何提升工做效率?
    •  目前接口文檔是由word格式管理理,因迭代快,產生不少文檔,分不不清哪些是不用的接口,哪些是正在用的接口,哪些是更新後的接口,文檔雜亂,另外因是word格式管理,不方便查詢,如何管理?每次查看接口文檔須要下載多個word,不能避免下載操做查看,效率不高,如何提升工做效率?
  • 接口測試用例編寫要點:
    • * 測試每一個參數類型不合法的狀況(類型不合法容易遺漏NULL型)
    • * 測試每一個參數取值範圍不合法的狀況
    • * 測試參數爲空的狀況
    • * 測試參數先後臺定義的一致性
    • * 測試每一個參數的上下限(這裏容易出致命的BUG,若是程序處理不當,可能致使崩潰)
    • * 若是兩個請求有嚴格的前後順序,須要測試調轉順序的狀況
    • 必填字段:請求參數必填項、可選項
    • 合法性:輸入輸出合法、非法參數
    • 邊界:請求參數邊界值等
    • 容錯能力:大容量數據、頻繁請求、重複請求(如:訂單)、異常網絡等的處理
    • 響應數據校驗:斷言、數據提取傳遞到下一級接口...
    • 邏輯校驗:如兩個請求的接口有嚴格的前後順序,須要測試調轉順序的狀況
    • 性能:對接口模擬併發測試,逐步加壓,分析瓶頸點
    • 安全性:構造惡意的字符請求,如:SQL注入、XSS、敏感信息、業務邏輯(如:跳過某些關鍵步驟;未經驗證操縱敏感數據)
  • 接口測試步驟
    • 請求接口
    • 獲取請求參數
    • 設置斷言assert:查看實際結果與預期結果是否相同
  • 簡單講解一個軟件接口測試實例講解(post)
    • 下載客戶端比較方便
    • 填寫一個get或post接口請求須要設置:請求頭,請求方法,請求體(請求參數)
    • 填寫請求,頭部參數
    • tests添加斷言
    • .Save as保存
    • 4.建立collection(彙集、集合)
    • 5.左側點擊collection-RUN
    • 6.點擊start test 右側能夠看到運行結果
    • 7.命令行運行集合(先保存,後安裝newman)
  • 接口流程
    • 基本的接口功能自動化測試流程爲:需求分析-->用例設計-->腳本開發-->測試執行-->結果分析
  • get與post區別
    • get向服務端請求數據,獲取數據,如咱們電商平臺的查看商詳頁面,查看評論
    • post向服務端發送請求主要是提交修改數據,如上傳圖片,登陸,發佈評論等
    • GET/POST均可以提交數據,GET請求也能夠向服務器傳遞數據,POST請求也須要服務器返回數據
  • http請求都有哪些
    • 經常使用的有4種get 查詢字符串參數,post 請求體參數,delete,put
  • 如何從上一個接口獲取相關的響應數據傳遞到下一個接
    • 從上個接口中獲取到下個接口須要的返回值( 使用正則表達式or使用JSON解析來提取須要獲取的值),作變量下個接口直接引用變量、
  • 在執行Android終端自動化測試過程,須要查看詳細日誌以及時間,須要執行ADB什麼命令和參數?
    • adb logcat -v time   查看日誌時間
    • adb logcat -v raw     查看日誌詳細信息
    • adb logcat | findstr xxxxx  過濾日誌信息
  • 請簡單介紹一下實用過的安卓UI自動化測試工具?
    • appium:是一個移動端的自動化框架,可用於測試原生應用,移動網頁應用和混合型應用,且是跨平臺的
相關文章
相關標籤/搜索