目前市場上六種優(yōu)秀的API測(cè)試工具
譯文【51CTO.com快譯】不可否認(rèn),API測(cè)試是成功實(shí)現(xiàn)持續(xù)集成,并保持DevOps實(shí)踐的重要組成部分。根據(jù)Google的一項(xiàng)趨勢(shì)分析,開發(fā)人員對(duì)于Web和API服務(wù)的測(cè)試興趣,在過去幾十年中呈逐漸增長的趨勢(shì)。同時(shí),根據(jù)SmartBear在2019年對(duì)3372名軟件專業(yè)人員進(jìn)行的API測(cè)試調(diào)查顯示,有91%的參與者目前、或?qū)⒁贫ㄕ降腁PI測(cè)試流程。而大約有45%的API測(cè)試人員認(rèn)為,他們的公司已經(jīng)自動(dòng)化了50%以上的測(cè)試項(xiàng)目。此外,有超過75%的跨行業(yè)公司認(rèn)為API質(zhì)量是測(cè)試中的重點(diǎn)。
總的說來,API測(cè)試是一個(gè)過程,它主要關(guān)注的是已開發(fā)的API是否滿足安全性、可靠性、性能、以及功能性的預(yù)期值。隨著API逐漸成為軟件開發(fā)中的關(guān)鍵元素,對(duì)于程序員和開發(fā)人員來說,他們需要使用先進(jìn)且合適的API測(cè)試工具。
API測(cè)試時(shí)需要考慮的要點(diǎn)
- API的使用者或目標(biāo)受眾
- 正常運(yùn)行狀態(tài)下的測(cè)試
- 可能用到的API環(huán)境
- 針對(duì)異常情況的測(cè)試
為什么要執(zhí)行API測(cè)試?
隨著越來越多的公司轉(zhuǎn)向持續(xù)部署(CD)、持續(xù)集成(CI)、以及DevOps,他們對(duì)測(cè)試反饋的要求比以往任何時(shí)候都更加迅速。同時(shí),開發(fā)人員已逐漸從單一的應(yīng)用程序,移為采用微服務(wù)技術(shù)進(jìn)行軟件開發(fā)。其中,API正是此類微服務(wù)軟件開發(fā)的基礎(chǔ)。因此,越來越多的團(tuán)隊(duì)需要借助自動(dòng)化測(cè)試工具,來開展全面、及時(shí)的測(cè)試。
市面上六大API測(cè)試工具
1.Katalon Studio
Katalon Studio是一個(gè)開源、全面且健壯的測(cè)試自動(dòng)化工具,可用于測(cè)試API、Web應(yīng)用、桌面端、以及移動(dòng)應(yīng)用程序。使用Katalon Studio的主要好處是:它能夠測(cè)試運(yùn)行在多個(gè)操作系統(tǒng)(如:Mac OS、Linux和Windows)上的業(yè)務(wù)級(jí)別(如:API、Web服務(wù))和UI。Katalon Studio支持帶有DELETE、PUT、POST等多種命令,以及參數(shù)化的RESTful和SOAP請(qǐng)求。
為了方便部署,Katalon Studio將所有插件、ALM集成和框架打入了一個(gè)包。除了免費(fèi)開源,Katalon也為企業(yè)和小型團(tuán)隊(duì)提供了付費(fèi)的支持服務(wù)。
主要特點(diǎn):
- 通過DELETE、PUT、GET、POST等多種命令類型,支持SOAP和RESTful請(qǐng)求,并具有參數(shù)化的能力。
- 具有結(jié)合API和用戶界面驗(yàn)證的能力。
- 提供許多用于創(chuàng)建測(cè)試用例的內(nèi)置關(guān)鍵字。
- 支持?jǐn)?shù)據(jù)驅(qū)動(dòng)的方法。
- 支持最具影響力的斷言庫--AssertJ,可用于創(chuàng)建具有行為數(shù)據(jù)驅(qū)動(dòng)風(fēng)格的流暢斷言。
- 可用于自動(dòng)化的試探性測(cè)試。
- 為非技術(shù)人員、專家、以及初學(xué)者同時(shí)提供了腳本和手動(dòng)模式。
- 提供可定制和預(yù)構(gòu)建的代碼模板。
- 具有代碼的自動(dòng)完成、自動(dòng)格式化、以及檢查功能。
缺點(diǎn)
- 不支持分布式測(cè)試。
官方網(wǎng)站: https://www.katalon.com/
2.Postman
這是一個(gè)應(yīng)用程序編程接口的開發(fā)協(xié)作平臺(tái)。作為最流行的API客戶端之一,Postman使用戶能夠計(jì)劃、構(gòu)建、共享、分配、測(cè)試、以及記錄API。最初,Postman只是Google Chrome的一個(gè)插件。如今,它對(duì)現(xiàn)有的Mac和Windows進(jìn)行了擴(kuò)展。
如果您不想編寫代碼的話,那么可以選擇Postman進(jìn)行API測(cè)試。也就是說,對(duì)于那些不想在IDE(集成開發(fā)環(huán)境)中,使用與軟件開發(fā)人員類似的語言,來編寫代碼的初學(xué)者來說,Postman是他們進(jìn)行API測(cè)試的最佳選擇之一。從2020年發(fā)布的高級(jí)版本7.3開始,該工具可使用最新首選項(xiàng),從API模式進(jìn)行創(chuàng)建,進(jìn)而幫助用戶更好地管理各種集合和API元素(如:監(jiān)視器、模擬服務(wù)器、測(cè)試和文檔等)。2020年8月發(fā)布的針對(duì)Linux、Windows和Mac應(yīng)用的7.31.1版,也修復(fù)了過往版本的一些細(xì)微缺陷。
主要特點(diǎn):
- 適用于Windows、Mac OS、Linux、以及Chrome應(yīng)用程序。
- 支持與Newman的持續(xù)集成和持續(xù)交付服務(wù)。
- 提供易用的REST客戶端。
- 支持運(yùn)行、測(cè)試、記錄和監(jiān)視功能。
- 提供豐富且易用的界面。
- 可用于自動(dòng)化和試探性的測(cè)試。
- 支持RAML和Swagger格式。
- 用戶無需學(xué)習(xí)新的語言。
- 允許用戶便捷地匯總各種請(qǐng)求和可能的響應(yīng),并共享和發(fā)送給其他團(tuán)隊(duì)成員。
缺點(diǎn)
- 盡管其企業(yè)版易于安裝和使用,但是在請(qǐng)求數(shù)量上有所限制。
- 商業(yè)版的定價(jià)過高。
官方網(wǎng)站:https://www.postman.com/
3.SoapUI
SoapUI是針對(duì)REST和SOAP API的最佳自動(dòng)化測(cè)試工具。在API測(cè)試中,它更適合于復(fù)雜的測(cè)試場景,可以讓開發(fā)人員輕松地測(cè)試SOAP、REST、以及Web服務(wù)。作為一個(gè)headless功能性的測(cè)試工具,它為用戶提供了一個(gè)完整的源框架。
在2020年7月份發(fā)布的5.6更新版中,SoapUI升級(jí)了第三方庫--JUnit、commons logging、org.apache.httpcomponents和commons codec,也刪除了未使用的第三方庫—KeenIO和Jackson。為了提高測(cè)試的安全性,此工具目前禁用了加載,以及在默認(rèn)情況下保存的各種項(xiàng)目腳本。
主要特點(diǎn):
- 提供開源包。
- 可通過拖放和點(diǎn)擊,來快捷地生成測(cè)試。
- 通過測(cè)試腳本的可重用性,來啟用負(fù)載測(cè)試。
- 可為所有API測(cè)試創(chuàng)建可執(zhí)行的安全掃描。
- 提供高級(jí)尊享套餐。
- 支持?jǐn)?shù)據(jù)驅(qū)動(dòng)測(cè)試(可從excel、數(shù)據(jù)庫和文件處加載數(shù)據(jù)),進(jìn)而模仿客戶機(jī)與API的交互。
- 支持原生的異步測(cè)試,以及與CI/CD的集成。
- 在非項(xiàng)目的情況下,能夠協(xié)助終端客戶的資源管理器對(duì)話框,發(fā)送一個(gè)試探性的請(qǐng)求和檢查反應(yīng)。
- 支持?jǐn)U展性的HTTP方式,其中包括PURGE、LOCK、COPY、PROPFIND和UNLOCK。
缺點(diǎn)
- 雖然執(zhí)行起來比較簡單,但是缺少文檔。
官方網(wǎng)站: https://www.soapui.org/
4.Tricentis Tosca
如果您正在為DevOps和敏捷開發(fā)尋找一個(gè)持續(xù)的測(cè)試平臺(tái),那么Tricentis Tosca恰好能夠幫助您完成API測(cè)試。作為一種全面的自動(dòng)化測(cè)試方法,它無需代碼,可以使用腳本來加速測(cè)試。Tricentis Tosca可以覆蓋包括移動(dòng)應(yīng)用、Web應(yīng)用、桌面應(yīng)用以及API在內(nèi)的多種應(yīng)用程序。目前,該工具被Gartner譽(yù)為自動(dòng)化測(cè)試領(lǐng)域的領(lǐng)先者。
主要特點(diǎn):
- 支持DevOps和敏捷周期。
- 支持諸如SOAP、HTTP(s)JMS、Rabbit MQ、REST、TIBCO EMS、AMQP、nettcp、以及IBM MQ等各種協(xié)議。
- 通過基于模型的自動(dòng)化測(cè)試,最大限度地提高可維護(hù)性和可重用性。
- API測(cè)試可以橫跨打包應(yīng)用、瀏覽器、移動(dòng)設(shè)備。
- 可實(shí)現(xiàn)持續(xù)性的自動(dòng)化測(cè)試。
- 可縮短回歸測(cè)試的時(shí)間。
- 其交互式測(cè)試可運(yùn)行各種手動(dòng)測(cè)試,并在無需設(shè)置Tosca環(huán)境的狀態(tài)下,收集結(jié)果。
- 支持API連接管理器中的Web服務(wù)安全配置。
- 用戶可以使用簽名安全替代方案,對(duì)消息的多個(gè)部分進(jìn)行簽名。
- QA工程師可以在API引擎中連接一個(gè)文件,從而實(shí)現(xiàn)有效的文件讀寫。
缺點(diǎn)
- 其開箱即用的功能有時(shí)并不盡人意。
官方網(wǎng)站:https://www.tricentis.com/software-testing-tools/
5.JMeter
作為一個(gè)自由軟件工具,JMeter工作在協(xié)議層,且支持跨平臺(tái),因此它既可以執(zhí)行性能和負(fù)載測(cè)試,又可以憑借著其附加功能與特性,被廣泛地用于功能性API測(cè)試。開發(fā)人員可以將JMeter用作測(cè)試JDBC數(shù)據(jù)庫連接的單元級(jí)測(cè)試工具,并基于其插件架構(gòu)生成測(cè)試數(shù)據(jù)。此外,它的協(xié)助命令行模式,對(duì)于那些兼容Java的操作系統(tǒng)來說,非常實(shí)用。JMeter于2019年11月發(fā)布了最新的5.2版。它不但包含JMESPath提取器、新協(xié)議、HTTP Samplers、StringtoFile、JDBC增強(qiáng)等新特性,也修復(fù)了一些顯著的缺陷,并且給用戶帶來更佳的體驗(yàn)。
主要特點(diǎn):
- 允許用戶使用多種編程語言。
- 支持測(cè)試結(jié)果的重放。
- 支持團(tuán)隊(duì)通過CSV文件,為API測(cè)試快速創(chuàng)建異常的數(shù)據(jù)(或參數(shù)值)。
- 通過與Jenkins的整合,用戶可以在CI管道中啟用API測(cè)試。
- 可用于動(dòng)態(tài)和靜態(tài)資源的性能測(cè)試。
- 可以對(duì)許多不同應(yīng)用、協(xié)議、以及服務(wù)器開展性能和負(fù)載的測(cè)試。
- 既支持每個(gè)線程的cookie,又支持各種變量斷言和參數(shù)化。
缺點(diǎn)
- 雖然鼓勵(lì)用戶實(shí)施較重的負(fù)載,但是在可視化測(cè)試報(bào)告方面卻比較浪費(fèi)內(nèi)存。
官方網(wǎng)站: http://jmeter.apache.org/download_jmeter.cgi
6.Rest-Assured
由于重點(diǎn)針對(duì)的是Java領(lǐng)域的語言,因此Rest-Assured能夠讓那些針對(duì)HTTP的REST服務(wù)測(cè)試變得更加簡單。它通過REST-Assured-API來支持JSON和XML方式的請(qǐng)求與響應(yīng)。由于這款免費(fèi)且開源的工具集成了多種基于Java的自動(dòng)化框架,因此您根本不需成為HTTP方面的專家。
同時(shí),REST-Assured通過提供一種類似于BDD(behavior-driven development,行為驅(qū)動(dòng)開發(fā))的準(zhǔn)確域語言(domain-precise language),使得在Java中生成API測(cè)試變得非常容易。而且,用戶可以直接使用其大量內(nèi)置的功能,而不需從頭開始編寫代碼。REST-Assured至少需要Java 8、Apache Johnzon的額外幫助、以及初始的OSGi支持,來修復(fù)各種測(cè)試中可能發(fā)現(xiàn)的問題。
主要特點(diǎn):
支持任何一種HTTP方法,以及各種命令,其中包括:DELETE、PUT、POST、GET、OPTIONS、HEAD、PATCH、以及各種head、參數(shù)、正文和cookies等聲明與驗(yàn)證。
- 用戶既不需要從頭開始編寫代碼,又不必精通HTTP。
- 能夠與Serenity自動(dòng)化測(cè)試框架相整合。
- 能夠產(chǎn)生精美的報(bào)告。
- 能夠與持續(xù)集成/持續(xù)交付工具相整合。
- 支持BDD的Then、When、Given等語法。
缺點(diǎn)
- 僅支持Java編程語言
官方網(wǎng)站:http://rest-assured.io/
小結(jié)
上述所羅列的六種API測(cè)試工具,只是當(dāng)前眾多可用工具中最常用的一些。鑒于各個(gè)企業(yè)需求的不同,以及團(tuán)隊(duì)手頭項(xiàng)目的差異性,您需要在仔細(xì)了解工具細(xì)節(jié)的基礎(chǔ)上,選用最適合自己業(yè)務(wù)的一款工具。
原文標(biāo)題:6 of the Best API Testing Tools in the Market,作者:Shormistha Chatterjee
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】