[雪峰磁針石部落格]介面測試面試題
文最新更新體現在pdf文件:介面測試面試題.pdf
什麼是API?
API是(Application Programming Interface)首字母縮略詞,即應用程式程式設計介面。 API是一組用於構建軟體應用程式的規程,協議和工具。API充當軟體應用程式之間的介面,並允許兩個軟體應用程式相互通訊。 API是一組軟體功能,可以由其他軟體執行。
概念相關的題目, 10分鐘學會API測試 可供參考。
什麼是API測試?
API測試是一種軟體測試,涉及直接測試API,也是整合測試的一部分,用於檢查API是否滿足應用程式的功能,可靠性,效能和安全性方面的期望。在API測試中,我們主要關注軟體架構的業務邏輯層。可以在包含多個API的任何軟體系統上執行API測試。
常見的API測試型別有哪些?
API測試通常涉及以下實踐:
- 單元測試
- 功能測試
- 負載測試
- 執行時/錯誤檢測
- 安全測試
- UI測試
- 互操作性和WS一致性測試
- 滲透測試
- 模糊測試
列舉API測試中使用的一些常用協議?3個即可。
- thrift
- HTTP
- REST
- SOAP
- JMS
- UDDI
- dubbo
API和Web服務之間的區別?
Web服務:
- 所有Web服務都是API
- 所有Web服務都需要通過Web(HTTP)公開
- Web服務只有三種使用方式:SOAP,REST和XML-RPC進行通訊
介面:
- API有很多並不基於HTTP
- API使用多種方式進行通訊,例如C / C ++中的DLL檔案,java中的Jar檔案/ RMI,Linux核心API中的中斷等。
什麼是Soap?
SOAP代表簡單物件訪問協議(Simple Object Access Protocol)。它是一種基於XML的訊息傳遞協議。雖說名字帶了簡單,但是協議比較羅嗦,已經遠沒有後來居上的JSON使用廣泛。
什麼是Rest API?
REST即Representational State Transfer。它是一組幫助開發人員執行請求和接收響應的函式。通過REST API中的HTTP協議進行互動。
SOAP和REST的區別?
SOAP:
- 通過共享XML文件進行通訊
- 僅支援XML格式
- 不支援快取
- SOAP比REST慢
- SOAP就像自定義桌面應用程式,緊密連線到伺服器
- SOAP基於HTTP進行封裝
REST:
- 基於網路的軟體架構的服務架構和設計
- 支援不同的資料格式
- 支援快取
- 比SOAP更快
- REST客戶端就像瀏覽器並使用應用程式必須適合的標準方法
- REST使用HTTP標頭來儲存元資訊
API常見測試有哪些?
我們在API上執行的一些常見測試如下。
- 驗證不同輸入條件的返回。
- 驗證不同資料結構
- 驗證API是否觸發其他事件或請求其他API
- 在沒有返回值時驗證API的行為
API測試有哪些優勢?
- 更快及更高的測試覆蓋率。
- API測試有助於我們降低測試成本。通過API測試,我們可以在GUI測試之前找到小錯誤。在GUI測試期間,這些小錯誤將變得更大。因此,在API測試中發現這些錯誤將對公司具有成本效益。
- API測試與語言無關。
- API測試在測試核心功能方面非常有用。我們可以在沒有使用者介面的情況下測試API。在GUI測試中,我們需要等到應用程式可用於測試核心功能。
- API測試有助於我們降低風險。
API測試中究竟需要驗證哪些內容?
- 資料準確性
- HTTP或其他協議狀態程式碼
- 響應時間
- API返回任何錯誤時的錯誤程式碼
- 授權檢查
- 非功能測試,如效能測試,安全測試
列舉一些用於API測試的工具?
用於API測試的一些工具如下:
- Curl
- httpie
- Requests: HTTP for Humans
- https://pypi.org/project/thrift/
- Postman
- Katalon Studio
- SoapUI
- Assertible
- Tricentis Tosca
- Apigee
- JMeter
- Rest-Assured
- Karate DSL
- API Fortress
- Parasoft
- HP QTP(UFT)
- vREST
- Airborne
- API Science
- APIary Inspector
- Citrus Framework
- Hippie-Swagger
- HttpMaster Express
- Mockbin
- Ping API
- Pyresttest
- Rest Console
- RoboHydra Server
- SOAP Sonar
- Unirest
- WebInject
python是目前介面測試使用最廣的語言,python 測試框架 及python 抓包工具(Hardware)都可參考。
列出一些最常用的API文件模板?
一些API文件模板如下。
- Swagger
- FlatDoc
- RestDoc
- API blueprint
- Slate
- Miredot
- Web服務API規範。
列舉一些非常受歡迎的API。
- Google Maps API
- YouTube的
- 推特Twitter
- 亞馬遜廣告API
- 微博認證API
- 釘釘開放介面
API測試和單元測試之間的區別?
單元測試:
- 多由開發團隊進行
- 白盒測試
- 構建中的過程之前
- 涉及原始碼
- 測試範圍有限,只考慮基本功能
API測試
- 多由QA團隊進行
- 多為黑盒測試
- 在構建部署後進行
- 大多不涉及原始碼API測試
- 測試範圍很廣
API測試面臨的主要挑戰是什麼?
- 適當的引數及其組合
- 正確分類引數
- 順序
- 驗證輸出
- 由於缺少GUI,提供輸入值較困難
執行API測試時我們面臨的BUG型別是什麼?
- 壓力,效能和安全問題
- 功能重複或缺失
- 可靠性問題
- 訊息不當
- 不相容的錯誤處理機制
- 多執行緒問題
- 不合適的錯誤
UI測試與API測試有何不同?
UI(使用者介面)測試是測試應用程式的圖形介面部分。它的主要重點是測試應用程式的外觀和感覺。API測試支援兩個不同軟體系統之間的通訊。它的主要重點是應用程式的業務層。
列舉一些最常用的HTTP方法?
- GET:從伺服器檢索資料
- POST:將資料新增到伺服器中的現有檔案或資源
- PUT:它允許您替換伺服器中的現有檔案或資源
- DELETE:它允許您從伺服器中刪除資料
- PATCH:用於對資源進行部分修改
選項:用於描述目標資源的通訊選項 - HEAD:它要求響應與GET請求相同,但沒有響應正文
可以使用GET請求而不是PUT來建立資源嗎?
不,GET請求僅允許只讀許可權。它使您可以從伺服器檢索資料,但不能建立資源。應使用PUT或POST方法來建立資源。
PUT和POST方法有什麼區別?
POST用於在伺服器上建立新物件,PUT請求用於在替換物件。
當客戶端將頁面傳送到伺服器,然後伺服器讓客戶端知道它放在何處時,應該使用POST。當客戶端指定頁面的位置時,應使用PUT。
參考資料
相關文章
- [雪峰磁針石部落格]multi-mechanize效能測試工具
- [雪峰磁針石部落格]使用jython進行dubbo介面及ngrinder效能測試
- [雪峰磁針石部落格]可愛的python測試開發庫Python
- [雪峰磁針石部落格]滲透測試簡介1滲透測試簡介
- [雪峰磁針石部落格]使用python3和flask構建RESTfulAPI(介面測試服務)PythonFlaskRESTAPI
- [雪峰磁針石部落格]軟體測試專家工具包1web測試Web
- [雪峰磁針石部落格]軟體自動化測試初學者忠告
- [雪峰磁針石部落格]selenium自動化測試工具python筆試面試專案實戰5鍵盤操作Python筆試面試
- [雪峰磁針石部落格]flask構建自動化測試平臺1-helloFlask
- [雪峰磁針石部落格]flask構建自動化測試平臺3-模板Flask
- [雪峰磁針石部落格]tesseractOCR識別工具及pytesseract
- [雪峰磁針石部落格]flask構建自動化測試平臺7-新增google地圖FlaskGo地圖
- [雪峰磁針石部落格]2018最佳ssh免費登陸工具
- [雪峰磁針石部落格]2018最佳python編輯器和IDEPythonIDE
- [雪峰磁針石部落格]pythontkinter圖形工具樣式作業Python
- [雪峰磁針石部落格]python應用效能監控工具簡介Python
- [雪峰磁針石部落格]pythonGUI工具書籍下載-持續更新PythonNGUI
- [雪峰磁針石部落格]2019-Python最佳資料科學工具庫Python資料科學
- [雪峰磁針石部落格]python爬蟲cookbook1爬蟲入門Python爬蟲
- [雪峰磁針石部落格]資料倉儲快速入門教程1簡介
- [雪峰磁針石部落格]python包管理工具:Conda和pip比較Python
- [雪峰磁針石部落格]Bokeh資料視覺化工具1快速入門視覺化
- [雪峰磁針石部落格]Python經典面試題:用3種方法實現堆疊和佇列並示例實際應用場景Python面試題佇列
- [雪峰磁針石部落格]python計算機視覺深度學習1簡介Python計算機視覺深度學習
- [雪峰磁針石部落格]pythonGUI作業:tkinter控制元件改變背景色PythonNGUI控制元件
- [雪峰磁針石部落格]python標準模組介紹-string:文字常量和模板Python
- [雪峰磁針石部落格]python計算機視覺深度學習2影像基礎Python計算機視覺深度學習
- [雪峰磁針石部落格]大資料Hadoop工具python教程9-Luigi工作流大資料HadoopPythonUI
- [雪峰磁針石部落格]python庫介紹-argparse:命令列選項及引數解析Python命令列
- [雪峰磁針石部落格]web開發工具flask中文英文書籍下載-持續更新WebFlask
- [雪峰磁針石部落格]資料分析工具pandas快速入門教程4-資料匯聚
- [雪峰磁針石部落格]python網路作業:使用python的socket庫實現ICMP協議的pingPython協議
- [雪峰磁針石部落格]計算機視覺opcencv工具深度學習快速實戰1人臉識別計算機視覺深度學習
- [雪峰磁針石部落格]計算機視覺opcencv工具深度學習快速實戰2opencv快速入門計算機視覺深度學習OpenCV
- [雪峰磁針石部落格]pythonopencv3例項(物件識別和擴增實境)1-影像幾何轉換PythonOpenCV物件
- 部落格測試
- [雪峰磁針石部落格]python3.7極速入門教程1安裝:Linux(Ubuntu18.04)及Windows上安裝AnacondaPythonLinuxUbuntuWindows
- 軟體測試面試問題_介面測試(二)面試