API测试和自动化101:基本指南
API代表A pplication P AGC軟件我覆蓋整個院落。 通常,API用于通過使用任何通信方式來促進兩個不同應用程序之間的交互。 在網絡上使用API??時,我們將其稱為“ Web服務”。 最近,API已成為編程的Struts。 與在應用程序中一樣,編寫API以與數據庫或與其他模塊進行通信現在已成為一種常見的做法,這就是為什么作為測試人員,我們必須測試API以最大程度地覆蓋測試范圍。
作為集成測試的一部分,API自動化可以幫助加速測試并提高效率。 由于大多數公司在業務層使用RESTful微服務/ API,因此API測試已成為任何版本測試計劃的關鍵組成部分。
用最簡單的術語來說,API是一項服務,可以幫助兩個不同的應用程序相互通信。 通常,API用于抽象業務邏輯并直接對任何應用程序進行數據庫訪問。
從邏輯上講,我們可以將整個系統分為三層-
換句話說,API是我們互聯世界的大腦。 這套工具,協議,標準和代碼將我們的數字世界粘合在一起。 由于它們提供的動態特性和功能,API使公司變得更加敏捷,事物可以移動并且一切都以簡化的集成方式一起工作。因此,API測試是在服務級別和集成級別對API進行測試。水平。
API的測試策略-
在測試API時,測試人員應集中精力使用軟件進行API調用,以便在觀察和記錄系統響應之前接收輸出。 最重要的是,在各種條件下測試API返回正確的響應或輸出。 此輸出通常是以下三個之一:
- 通過或失敗狀態
- 數據或信息
- 調用另一個API
但是,也可能根本沒有輸出,或者發生了完全無法預測的事情。 這使測試人員的角色對于應用程序開發過程至關重要。由于API是許多應用程序的數據中心,因此API的數據驅動測試可以幫助提高測試覆蓋率和準確性。
在直接測試API時,指定通過/失敗方案更具挑戰性。 但是,在比較響應中的API數據或比較另一個API中的API調用后的行為時,將幫助您設置確定的驗證方案。
API測試是整個軟件測試和QA測試鏈中最具挑戰性的部分之一,因為它可以確保我們的數字生活以越來越無縫和高效的方式運行。 盡管開發人員傾向于只測試他們正在使用的功能,但是測試人員負責測試單個功能和一系列功能或一系列功能,以發現端到端的工作方式。
API測試類型-
首先確定您需要對API執行哪種類型的測試。 就像測試人員對其產品功能進行不同類型的測試一樣,API也是如此。 API的常見測試包括-
單元測試 –測試單個操作的功能。 例如-Google提供了地理編碼API,以獲取任何位置的經度和緯度。 這通常以地址作為輸入并返回lat long。 現在,對于此API的單元測試,測試人員可以通過其他位置并驗證結果。
功能測試-這種測試類型主要集中在API的功能上。 這將包括測試用例,以驗證HTTP響應代碼,響應的驗證,萬一API返回任何錯誤的錯誤代碼等。
負載測試-在API處理大量數據并同時有一定數量的用戶使用應用程序的情況下,這種類型的測試是必需的。 這會同時增加API命中率,并且可能會崩潰并且無法承擔該負載。
安全測試-安全測試尤其重要,因為使用API??在兩個不同的應用程序之間創建鏈接。 使用API??的核心目的是使應用程序的數據庫抽象或隱藏。 這可能包括測試用例,例如授權檢查,會話管理等。
互操作性測試-這是為了測試應用程序應該可以訪問的API。 這適用于SOAP API。
WS合規性測試-已對API進行測試,以確保正確實施和利用WS-Addressing,WS-Discovery,WS-Federation,WS-Policy,WS-Security和WS-Trust等標準
滲透測試-這是從外部資源中查找API的漏洞。
Web服務/ API協議-
如果我們談論網絡服務,則主要有兩種類型的服務,或者我們可以說協議:
REST - REST代表RE表象小號大老貿易交接相比,SOAP這意味著它要克服一切與SOAP的問題,這是塊新的。 REST是一種輕量級協議,它使用URL來獲取所有必需的信息。 它使用四種HTTP方法來執行任務-
REST由于其簡單輕巧的體系結構,如今已越來越多地使用。
SOAP API-支架使用S imple?bject 一個 CCESS P rotocol。 它使用XML進行消息交換。 執行此任務所需的所有信息均以其WSDL(Web服務描述語言)給出。 SOAP由于其廣泛使用的標準和XML而非常笨重。 相對于Rest,SOAP的主要優點是它內置了錯誤處理功能,并且可以與其他協議(例如SMTP)一起使用。
API測試和自動化工具
有幾種工具可以測試API。 當測試人員測試API時,他們必須索要其文檔,無論是REST還是SOAP API還是其非基于Web的API,都應該始終有一個文檔,其中應寫有詳細信息。 進行API測試-
- 典型的API文檔具有與該API相關的所有信息,例如其請求格式,響應,錯誤代碼,資源,強制性參數,可選參數,標頭等。該文檔可以通過各種工具(例如,開源,Dapperdox, ReDoc等
- 之后,嘗試為API編寫服務級別案例。 例如,如果一個API接受n個參數來獲取響應,其中m是強制性參數,其他是可選參數,那么一個測試用例應該是嘗試不同的參數組合并驗證響應。 另一個測試用例可能會驗證標頭,并嘗試在不通過身份驗證的情況下運行API并驗證錯誤代碼。
- 接下來是集成測試步驟,您需要在其中測試API及其所有相關的API或功能。 這還包括測試API響應,應返回給另一個API或方法的數據以及該API失敗時會發生什么。
- 一旦API穩定并且功能測試即將完成,測試人員就可以執行負載,安全性和性能測試。
API自動化
我們經常需要自動化重復執行的測試用例。 對于例如-回歸案例。 同樣,在進行API測試的情況下,在某些情況下我們可能需要在每個版本之前執行,并且這些情況可以自動化。
有許多用于API自動化的工具,它們非常流行-
SOUP UI-這是非常流行的API測試工具。您可以使用SoapUI對API進行功能,負載,安全性和合規性測試。
Katalon Studio-建立在Selenium和Appium的頂部,Katalon Studio是一個免費且功能強大的自動化測試工具,用于Web測試,API測試和移動測試。
Postman-郵差是免費的,可以幫助您更有效使用API時。 它具有開發和測試API的所有功能。
Jmeter-盡管Jmeter主要用于性能和負載測試,但在很大程度上也可以用于API功能測試。
RestAssured- Rest-Assured是一個基于Java的庫,用于測試RESTful Web服務。該庫可以包含在現有框架中,并直接調用其方法以json格式獲取響應,然后執行所需的操作。
我以一個示例來說明基本API功能測試所遵循的步驟,這里我使用的是CloudQA提供的TruAPI工具,該工具是新的并且越來越受歡迎-
步驟1-要運行API請求,您需要首先選擇“方法類型”并粘貼API的URL。 按發送按鈕將請求發送到API或按添加API測試按鈕保存請求-
試試這個示例方法類型和API URL
- 方法類型: GET
- APIURL:https://um5fdww2pj.execute-api.us-east-1.amazonaws.com/dev/todos
Step2-API請求信息:
- 大多數API都需要其他輸入來執行請求,例如參數,標頭,Body(JSON)等。
- 要添加請求的參數,您可以選擇相應的“ 參數”選項卡,然后按“ 添加參數”按鈕以添加所需的信息。
第3步:通過身份驗證發送API請求:
- 如果您的托管API需要身份驗證,則可以轉到“授權”選項卡,然后從下拉列表中選擇“ BasicAuth ”(默認設置為“ Noauth”),然后輸入用戶名和密碼。 現在,您可以發送經過身份驗證的請求了。
- 每個API響應均包含不同的值,例如狀態碼,正文,標頭和完成API請求的時間。 下圖顯示了如何描述收到的API響應。
添加斷言:
- 在自動化過程中,使用斷言驗證輸出非常重要。 要在API運行程序中添加斷言,請轉到“斷言”選項卡。 您可以在此處添加一個或多個斷言。
- 請按照以下步驟添加斷言:
- 選擇回應類型
- 完成添加斷言
變量:
- “變量”選項卡對于存儲作為已發送的API請求的響應而接收的值很有用。 若要保存響應,請轉到“變量”選項卡,然后執行以下步驟:
- 添加變量
查看或執行已保存的API請求:
- 當您進入API Runner頁面時,請使用“查看保存的測試”按鈕查看保存的測試
- 選擇一個或多個保存的API測試并默認運行選定的測試,這些測試將顯示上一次執行的運行狀態信息
- 結果將顯示API執行歷史記錄
這是一個單一的API執行和自動化。 對于現實場景,我們經常需要創建包含所有回歸測試用例的API套件,并將其作為回歸測試的一部分來運行。 在敏捷中,準備好一套西裝以使其能夠與CI和CD集成至關重要。
CloudQA附帶了有關該工具的非常豐富的文檔,CloudQA提供的所有工具都與“無代碼自動化”的思想保持一致,并且非常易于手動測試人員使用。
文檔鏈接-https://doc.cloudqa.io/TruAPI.html
從邏輯上講,我們可以將整個系統分為三層-
翻譯自: https://www.javacodegeeks.com/2019/01/api-testing-automation-essential-guide.html
總結
以上是生活随笔為你收集整理的API测试和自动化101:基本指南的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 粹组词 粹如何组词
- 下一篇: jdk8lambda_JDK8 lamb