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

































