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