您需要知曉的20款測(cè)試工具庫(kù)
譯文【51CTO.com快譯】眾所周知,優(yōu)秀的自動(dòng)化測(cè)試工具可以讓用戶(hù)在采用DevOps或Agile的過(guò)程中,為團(tuán)隊(duì)的自動(dòng)化提供良好的支持。因此在面對(duì)用戶(hù)需要以更快的速度、交付出更高質(zhì)量的軟件產(chǎn)品時(shí),許多企業(yè)自然會(huì)通過(guò)搜尋各種自動(dòng)化測(cè)試工具,以滿(mǎn)足他們?cè)诔掷m(xù)集成和DevOps方法論方面的需求。
本文向您介紹20種自動(dòng)化測(cè)試工具與庫(kù),其中包括一些對(duì)于自動(dòng)化測(cè)試、單元測(cè)試、以及各種其他類(lèi)型測(cè)試需求非常實(shí)用的工具。希望它們能夠?qū)δ捻?xiàng)目有所幫助。
1.Selenium
Selenium由如下三個(gè)工具組成:
- Selenium WebDriver能夠讓用戶(hù)就像在本地或遠(yuǎn)程使用Selenium服務(wù)器那樣,在本機(jī)上驅(qū)動(dòng)瀏覽器,以實(shí)現(xiàn)基于瀏覽器的自動(dòng)化測(cè)試。WebDriver備受W3C的推崇(請(qǐng)?jiān)斠?jiàn):https://www.w3.org/TR/webdriver1/)。
- Selenium Grid是一個(gè)智能代理服務(wù)器。它允許用戶(hù)將測(cè)試命令路由到遠(yuǎn)程Web瀏覽器的實(shí)例上。同時(shí),它能夠提供一種能夠在多臺(tái)計(jì)算機(jī)上并行運(yùn)行測(cè)試的簡(jiǎn)便方法。
- Selenium IDE可以被用于Web的開(kāi)源記錄和回放自動(dòng)化測(cè)試(請(qǐng)?jiān)斠?jiàn): https://dzone.com/articles/record-and-play-load-testing-in-5-steps)。
許可證:開(kāi)源
2.Appium
Appium是一款開(kāi)源、且跨平臺(tái)的自動(dòng)化測(cè)試工具。它適用于原生的移動(dòng)Web、以及混合式的桌面應(yīng)用。Appium支持iOS模擬器、Android模擬器、以及各種類(lèi)型的實(shí)際設(shè)備,包括:iOS、Android、Windows和Mac。
由于在默認(rèn)情況下,Appium不包含任何驅(qū)動(dòng)程序。因此任何人都可以通過(guò)Appium 2.0的構(gòu)建方式,創(chuàng)建和發(fā)布某個(gè)驅(qū)動(dòng)程序。也就是說(shuō),驅(qū)動(dòng)程序的版本維護(hù)與Appium的版本并無(wú)直接關(guān)系。同時(shí),Appium提出了一個(gè)基于插件的生態(tài)系統(tǒng)。在該生態(tài)系統(tǒng)中,用戶(hù)可以在真實(shí)的Appium命令之前、或之后任意添加各種插件功能。
許可證:開(kāi)源
3.Taiko
Taiko是由來(lái)自ThoughtWorks(https://www.thoughtworks.com/)的團(tuán)隊(duì),所構(gòu)建的、免費(fèi)開(kāi)源的瀏覽器自動(dòng)化工具。作為一個(gè)Node.js庫(kù),Taiko具有清晰而簡(jiǎn)潔的API,可以自動(dòng)化諸如Chrome、Microsoft Edge、以及Opera等瀏覽器。通常,用Taiko編寫(xiě)出的測(cè)試程序,具有很高的可讀性和可維護(hù)性。
用戶(hù)可以使用ChromeDevtoolsProtocol,讓Taiko專(zhuān)注于圍繞著UI的功能,進(jìn)行自動(dòng)化測(cè)試。Taiko的功能可以通過(guò)各種插件來(lái)進(jìn)行擴(kuò)展,其中包括:
- Taiko-accessibility(https://github.com/andreas-ku/taiko-accessibility)是一種測(cè)試網(wǎng)站可訪(fǎng)問(wèn)性的Taiko插件。
- Taiko-android(https://github.com/saikrishna321/taiko-android)是一種在A(yíng)ndroid設(shè)備和模擬器上運(yùn)行網(wǎng)絡(luò)測(cè)試的Taiko插件。
- Taiko-diagnostics(https://github.com/saikrishna321/taiko-diagnostics)是一種提供諸如:測(cè)量速度、網(wǎng)頁(yè)性能指標(biāo)等診斷功能的Taiko插件。
許可證:開(kāi)源
TestProject是一個(gè)免費(fèi)的端到端自動(dòng)化測(cè)試平臺(tái),可被用于Web、移動(dòng)和API等測(cè)試?;赟elenium和Appium等開(kāi)源工具構(gòu)建的TestProject,能夠得到自動(dòng)化測(cè)試社區(qū)的支持,其中包括:輕松地編寫(xiě)腳本、協(xié)作測(cè)試腳本、以及智能測(cè)試記錄器等的附加組件。
作為一個(gè)開(kāi)源的平臺(tái),TestProject具有強(qiáng)大且齊全的功能,可供任何人免費(fèi)使用。另外,TestProject也能夠輕松地支持諸如Windows、macOS、Linux、iOS、Android、Web服務(wù)等平臺(tái)。
TestProject有著一些不錯(cuò)的特有功能,其中包括:iOS和Android設(shè)備的屏幕鏡像、元素檢查器與資源管理器、報(bào)告儀表板與智能測(cè)試記錄器等。同時(shí),其支持社區(qū)也通過(guò)使用TestProject SDK,構(gòu)建出了一些附加的組件。其中包括:NLP引擎、RESTful客戶(hù)端、Android權(quán)限管理器等,它們都可以通過(guò)瀏覽器記錄器的形式、或直接在測(cè)試類(lèi)中被使用到。
許可證:免費(fèi)
WebdriverIO是一款基于JavaScript的自動(dòng)化測(cè)試框架。它能夠讓您基于Webdriver協(xié)議和Appium自動(dòng)化技術(shù)開(kāi)展測(cè)試。它不但支持常用的BDD/TDD(行為驅(qū)動(dòng)開(kāi)發(fā)/測(cè)試驅(qū)動(dòng)開(kāi)發(fā))測(cè)試框架,也能夠使用Sauce Labs、BrowserStack或TestingBot,在本地或云中運(yùn)行各種測(cè)試。
作為一款被廣泛使用的自動(dòng)化測(cè)試框架,WebdriverIO在開(kāi)發(fā)人員和測(cè)試人員中非常流行。它能夠提供的服務(wù)包括:
- @ wdio / appium-service(https://github.com/webdriverio/webdriverio/tree/master/packages/wdio-appium-service)是一種用于啟動(dòng)和停止Appium服務(wù)器的WebdriverIO服務(wù)。
- @ wdio / applitools-service(https://github.com/webdriverio/webdriverio/tree/master/packages/wdio-applitools-service)是一種用于針對(duì)Applitools進(jìn)行視覺(jué)回歸測(cè)試WebdriverIO服務(wù)。
- @ wdio / devtools-service(https://github.com/webdriverio/webdriverio/tree/master/packages/wdio-devtools-service) 是一種WebdriverIO服務(wù),可讓您在測(cè)試中運(yùn)行Chrome DevTools命令。
- @ wdio / firefox-profile-service(https://github.com/webdriverio/webdriverio/tree/master/packages/wdio-firefox-profile-service)是一種可以讓您在wdio.conf.js中定義Firefox配置文件的WebdriverIO服務(wù)。
許可證:開(kāi)源
Applitools是一款針對(duì)應(yīng)用程序可視化管理,以及基于A(yíng)I的可視化UI測(cè)試與監(jiān)控的軟件。Applitools能夠自動(dòng)在每個(gè)應(yīng)用程序、瀏覽器、操作系統(tǒng)、以及屏幕尺寸上,進(jìn)行大規(guī)模的功能性和視覺(jué)測(cè)試。
利用現(xiàn)有的測(cè)試,Applitools可以基于A(yíng)I的認(rèn)知視覺(jué),實(shí)現(xiàn)自動(dòng)化的測(cè)試維護(hù)、跨設(shè)備和瀏覽器的測(cè)試、以及視覺(jué)測(cè)試的管理和分析。最近,Applitools推出了Ultrafast Grid(請(qǐng)參見(jiàn):https://applitools.com/ultrafast-grid),可用于大規(guī)模的、跨瀏覽器的并行多視口(viewport)測(cè)試。
有關(guān)Applitools定價(jià)計(jì)劃,請(qǐng)參考:https://applitools.com/pricing。
7.Cypress
Cypress可謂專(zhuān)為現(xiàn)代網(wǎng)絡(luò)打造的下一代前端測(cè)試工具。Cypress可以被用來(lái)編寫(xiě)單元測(cè)試、端到端測(cè)試、以及集成測(cè)試。它可與用戶(hù)的應(yīng)用程序在同一個(gè)運(yùn)行循環(huán)中被執(zhí)行。作為一個(gè)節(jié)點(diǎn)服務(wù)器的進(jìn)程,Cypress可以在這兩個(gè)進(jìn)程中,始終保持相互通信,并同步執(zhí)行各項(xiàng)任務(wù)。當(dāng)然,Cypress也有一定的局限性,它能夠支持的測(cè)試框架比較有限,調(diào)試起來(lái)也非常困難。另外,在同一個(gè)測(cè)試中,Cypress無(wú)法在不同的來(lái)源或域之間,實(shí)現(xiàn)跨域的iframe。
值得一提的是,Cypress測(cè)試庫(kù)(https://github.com/testing-library/cypress-testing-library),具有簡(jiǎn)單而完整的自定義Cypress命令和實(shí)用程序,可被用戶(hù)用來(lái)培養(yǎng)良好的測(cè)試習(xí)慣。
許可證:開(kāi)源
8.Pact
Pact是一種代碼優(yōu)先(code-first)類(lèi)型的工具,可以通過(guò)contract test來(lái)測(cè)試各種HTTP和消息集成。也就是說(shuō),使用Pact,我們可以contract的形式(即庫(kù)的名稱(chēng))定義給定提供者(provider,可以是一種HTTP REST服務(wù))的消費(fèi)者(consumer)期望。此處,消費(fèi)者驅(qū)動(dòng)類(lèi)型的contract(https://dzone.com/articles/consumer-driven-contracts-with-pact-feign-and-spri)也是一種從消費(fèi)者的角度驅(qū)動(dòng)提供者開(kāi)發(fā)的模式。
許可證:開(kāi)源
REST-assured是一種Java DSL(Domain-specific language),它構(gòu)建于HTTP Builder之上,可被用于簡(jiǎn)化針對(duì)基于REST服務(wù)的測(cè)試。它能夠支持POST、GET、PUT、DELETE、OPTIONS、PATCH和HEAD等請(qǐng)求,可用于驗(yàn)證和確證此類(lèi)請(qǐng)求的響應(yīng)。
旨在簡(jiǎn)化REST API測(cè)試與驗(yàn)證的REST-assured,受到了Ruby和Groovy等動(dòng)態(tài)語(yǔ)言在測(cè)試技術(shù)方面的影響。因此,該工具庫(kù)為標(biāo)準(zhǔn)的HTTP操作提供了可靠的支持。
許可證:開(kāi)源
10.OWASP ZAP
作為一款開(kāi)源的Web應(yīng)用安全掃描程序,OWASP ZAP適合于應(yīng)用安全的新手和專(zhuān)業(yè)滲透測(cè)試人員。ZAP提供了豐富的測(cè)試功能,適用于各種主要操作系統(tǒng)、以及Docker版本。它是目前最流行的開(kāi)放式Web應(yīng)用安全項(xiàng)目,其核心是所謂的“中間人代理(https://dzone.com/articles/the-magic-behind-burp-and-zap-and-other-proxies)”。也就是說(shuō):它位于測(cè)試人員的瀏覽器和Web應(yīng)用程序之間,以便攔截和檢查兩者之間往來(lái)的消息,進(jìn)而按需修改內(nèi)容,將新的數(shù)據(jù)包轉(zhuǎn)發(fā)到目標(biāo)位置上。而且,它既可以用作獨(dú)立應(yīng)用程序,又可以被當(dāng)作守護(hù)進(jìn)程被使用。
許可證:開(kāi)源
11.JMeter
Apache JMeter是一款純Java應(yīng)用的開(kāi)源軟件,它能夠測(cè)試各項(xiàng)功能的行為,以衡量其性能。JMeter最初是為測(cè)試Web應(yīng)用而設(shè)計(jì)的。不過(guò),如今它已經(jīng)擴(kuò)展到了其他功能性測(cè)試場(chǎng)景中。Apache JMeter的主要功能包括:
- 能夠針對(duì)多種不同的應(yīng)用程序、服務(wù)器、協(xié)議類(lèi)型等開(kāi)展負(fù)載和性能測(cè)試。
- 具有功能齊全的Test IDE,能夠快速地記錄來(lái)自瀏覽器、或本機(jī)應(yīng)用的測(cè)試計(jì)劃、構(gòu)建和調(diào)試。
- 完整的多線(xiàn)程框架既允許通過(guò)多個(gè)線(xiàn)程進(jìn)行并發(fā)采樣,又能夠通過(guò)單獨(dú)的線(xiàn)程組,同時(shí)對(duì)不同的函數(shù)進(jìn)行采樣。
- 能夠緩存、脫機(jī)分析、并重放各種測(cè)試結(jié)果。
- 能夠從HTML、JSON、XML或任何文本格式中提取數(shù)據(jù),并輕松地進(jìn)行關(guān)聯(lián)。
許可證:開(kāi)源
12.Gatling
Gatling是一個(gè)基于Scala、Akka和Netty的開(kāi)源式負(fù)載和性能測(cè)試框架。它能夠支持HTTP、WebSocket、服務(wù)器發(fā)送事件(Server-Sent-Events),以及JMS。
Gatling不會(huì)為每個(gè)用戶(hù)分配單獨(dú)的線(xiàn)程。相反,所有的多線(xiàn)程都是通過(guò)參與者之間的消息(并發(fā)計(jì)算)來(lái)完成。也就是說(shuō),該消息允許僅使用單個(gè)線(xiàn)程來(lái)模擬一系列用戶(hù)。
Gatling不但擁有斷言和人類(lèi)可讀的測(cè)試,還能夠提供開(kāi)箱即用的詳細(xì)指標(biāo)儀表板。此外,通過(guò)Taurus,Gatling還能夠提供可配置的測(cè)試執(zhí)行和詳細(xì)的實(shí)時(shí)在線(xiàn)報(bào)告。
許可證:開(kāi)源版本和企業(yè)版本。
13.Terratest
Terratest是一個(gè)Go庫(kù),能夠?qū)erraform、Packer、Docker、Kubernetes、AWS、以及GCP等提供一流的支持。同時(shí),它為常見(jiàn)的基礎(chǔ)架構(gòu)測(cè)試任務(wù)提供了多種幫助類(lèi)程序功能和模式,其中包括:
- 測(cè)試Terraform的代碼。
- 測(cè)試Packer的模板。
- 測(cè)試Docker的鏡像。
- 通過(guò)SSH在服務(wù)器上執(zhí)行命令。
- 與AWS、Azure、GCP和Kubernetes API的協(xié)同。
- 測(cè)試Helm Charts。
- 發(fā)出HTTP請(qǐng)求。
- 運(yùn)行shell命令等。
14.Axe-Core
作為測(cè)試引擎,Axe可被用于測(cè)試網(wǎng)站和其他基于HTML界面的可訪(fǎng)問(wèn)性。它不但快速、安全、輕巧、而且能夠與任何現(xiàn)有的測(cè)試環(huán)境進(jìn)行無(wú)縫集成,因此您可以在進(jìn)行常規(guī)功能性測(cè)試的同時(shí),自動(dòng)執(zhí)行可訪(fǎng)問(wèn)性的測(cè)試。
借助Axe,開(kāi)發(fā)人員可以在任何主流的瀏覽器、工具和測(cè)試環(huán)境中,將可訪(fǎng)問(wèn)性作為單元測(cè)試、集成測(cè)試、以及功能測(cè)試的一部分來(lái)予以執(zhí)行。
Axe不但能夠與現(xiàn)有的功能測(cè)試或驗(yàn)收測(cè)試相集成,而且可以通過(guò)評(píng)估上下文來(lái)自動(dòng)確定需要運(yùn)行的規(guī)則。此外,Axe還能夠支持內(nèi)存中(in-memory)的固定、靜態(tài)固定、集成測(cè)試、無(wú)限深度iframe,以及具有高度可配置性。
許可證:開(kāi)源
作為一個(gè)Java庫(kù),Testcontainers能夠支持各種JUnit測(cè)試。它提供常見(jiàn)的數(shù)據(jù)庫(kù)、Selenium Web瀏覽器、以及能夠在Docker容器中運(yùn)行的輕量級(jí)一次性實(shí)例。通過(guò)Testcontainer,您可以輕松地開(kāi)展數(shù)據(jù)訪(fǎng)問(wèn)層集成測(cè)試、應(yīng)用程序集成測(cè)試、以及UI接受性測(cè)試。
許可證:開(kāi)源
16.Jest
Jest是一款簡(jiǎn)單的JavaScript測(cè)試框架。它通過(guò)協(xié)助執(zhí)行快照測(cè)試,以檢測(cè)出UI中的任何意外更改。Jest既不會(huì)存儲(chǔ)UI的圖像截圖,也不會(huì)執(zhí)行圖像的比較,而是會(huì)在快照文件中存儲(chǔ)被測(cè)React組件的標(biāo)準(zhǔn)輸出版本。
通常,快照文件與單元測(cè)試會(huì)一起被提交。在后續(xù)的測(cè)試中,測(cè)試框架將其與既有組件的輸出進(jìn)行比較。如果測(cè)試失敗,Jest則會(huì)顯示出預(yù)期結(jié)果與實(shí)際輸出之間的差異。
許可證:開(kāi)源
17.Locust
Locust是用Python編寫(xiě)的一種可擴(kuò)展的用戶(hù)負(fù)載測(cè)試工具。作為一款易用的分布式測(cè)試工具,Locust能夠通過(guò)對(duì)網(wǎng)站(或其他系統(tǒng))產(chǎn)生負(fù)載,以確認(rèn)目標(biāo)系統(tǒng)能夠處理的并發(fā)用戶(hù)數(shù)。
在測(cè)試期間,該工具可以模擬“一群蝗蟲(chóng)”攻擊目標(biāo)網(wǎng)站。您可以定義每個(gè)“蝗蟲(chóng)”(如:測(cè)試用戶(hù))的行為,并能夠通過(guò)Web UI來(lái)實(shí)時(shí)監(jiān)視群集的整個(gè)過(guò)程。此舉可以協(xié)助您在允許真正的用戶(hù)使用之前,事先測(cè)試并發(fā)現(xiàn)代碼中的瓶頸。目前,Locust的功能包括:測(cè)試分發(fā)和可擴(kuò)展性。作為一種輕量級(jí)的過(guò)程,它不像市場(chǎng)上的其他工具那樣用到了回調(diào)(callback),而是采用專(zhuān)用的Web服務(wù)器發(fā)布測(cè)試結(jié)果。
許可證:開(kāi)源
18.Pywinauto
pywinauto是一個(gè)功能強(qiáng)大的Python模塊,可被用于自動(dòng)執(zhí)行Windows GUI的應(yīng)用。它允許用戶(hù)將鼠標(biāo)和鍵盤(pán)事件發(fā)送到Windows的對(duì)話(huà)框和控件中。相對(duì)于廣為大家所熟悉的Sikuli或Appium等Windows驅(qū)動(dòng)程序,pywinauto擁有強(qiáng)大的社區(qū)支持,并能得到持續(xù)的模塊維護(hù)。
Pywinauto既可以靈活、且隱式地等待對(duì)話(huà)框的初始化(使用的是默認(rèn)超時(shí)),也可以顯式地使用專(zhuān)用的方法和函數(shù),來(lái)簡(jiǎn)化并加固程序代碼。
許可證:開(kāi)源
19.Burp Suite
Burp Suite是一個(gè)用于執(zhí)行Web應(yīng)用安全性的集成測(cè)試平臺(tái)。它的各種工具可以無(wú)縫地協(xié)同工作,以支持整個(gè)測(cè)試過(guò)程,進(jìn)而對(duì)應(yīng)用攻擊面的初始化映射進(jìn)行分析,發(fā)現(xiàn)那些可能被利用安全漏洞。
此外,Burp Suite的其他特性還包括:目標(biāo)站點(diǎn)的地圖功能,使用Spider爬取Web應(yīng)用程序,處理Web請(qǐng)求,以及對(duì)數(shù)據(jù)進(jìn)行解碼和編碼。
許可證:開(kāi)源版、專(zhuān)業(yè)版和商業(yè)版
20.GTXiLib
GTXiLib是一款用于iOS的Google輔助功能工具集。其中,GTX-eye是用于iOS輔助功能測(cè)試的框架。它能夠與EarlGrey等基于XCTest的框架無(wú)縫集成。用戶(hù)可以將現(xiàn)有的XCTests集成到GTXiLib中,以實(shí)現(xiàn)在無(wú)需修改大量代碼的情況下,執(zhí)行可訪(fǎng)問(wèn)性的檢查。而此類(lèi)檢查主要關(guān)注的是屏幕上元素是否存在可訪(fǎng)問(wèn)性標(biāo)簽。
通過(guò)將GTXiLib安裝到單個(gè)測(cè)試用例、測(cè)試類(lèi)、以及特定的測(cè)試子集中,您可以自由地添加各種可訪(fǎng)問(wèn)性測(cè)試。這將有助于用戶(hù)在大型項(xiàng)目中逐步推進(jìn)可訪(fǎng)問(wèn)性的勘察。另外,您還可以根據(jù)GTXiLib所提供的簡(jiǎn)單API,按照目標(biāo)應(yīng)用的特定需求,自定義創(chuàng)建檢查測(cè)試的關(guān)鍵點(diǎn)。
許可證:開(kāi)源
原文標(biāo)題:20 Testing Tools and Libraries You Need to Know,作者:Srinivasan Sekar
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】