接口測試面試題—第二版


  • 接口的加密測試中對稱加密與非對稱加密有什么區別? 如何開展測試?
    • 對稱加密是最快速、最簡單的一種加密方式,加密(encryption)與解密(decryption)用的是同樣的密鑰(secret key),這種方法在密碼學中叫做對稱加密算法。
    • 非對稱加密為數據的加密與解密提供了一個非常安全的方法,它使用了一對密鑰,公鑰(public key)和私鑰(private key)。私鑰只能由一方安全保管,不能外泄,而公鑰則可以發給任何請求它的人。
  • 請詳細闡述接口測試和UI測試在測試活動中是如何協同測試的
    • 接口測試和UI測試這兩塊其實是有一部分是重疊的,UI測試是通過前端寫的界面,來調用接口,而接口測試是直接調接口。所以排除前端的處理的邏輯和調用的正確性,在理論上接口測試是可以覆蓋所有的UI測試。但實際過程中,如果只是在接口層覆蓋所有的業務流,在UI上只測試前端的邏輯,最終的結果可能會是忽視很多原有的功能點,導致了UI測試的不充分。所以存在多人分工且時間充分的時候可以嘗試接口去做業務流的全覆蓋,否則不要輕易嘗試。
  • 在手工接口測試或者自動化接口測試的過程中,上下游接口有數據依賴如何處理?
    • 在工具中可以使用全局變量等方式將需要的數據進行傳送。
    • 依賴於第三方數據的接口如何進行測試
    • 可以使用SoapUI等工具直接調用第三方數據接口的webservice,通過返回值來查看第三方數據的接口是否調用正常。
    • 也可以利用一些MOCK的工具來模擬第三方的數據返回,最大限度的降低對第三方數據接口的依賴
    • mock主要用來開發需要依賴一部分接口,但對方沒有提供環境情況下
    • 可以利用一些MOCK工具(如:JSON Server、Easy Mock)來模擬第三方的數據返回,最大限度的降低對第三方數據接口的依賴https://www.cnblogs.com/yoyoketang/p/9348552.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:是一個移動端的自動化框架,可用於測試原生應用,移動網頁應用和混合型應用,且是跨平台的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM