Pinagmulan: Ang Dev.to Java unit testing frameworks ay nagbibigay ng standard, sopistikado, at extensible na tool para sa mga developer na lumikha ng mga application o anumang iba pang software. Binubuo ang mga ito ng isang malaking bilang ng mga bagay na naglalaman ng pre-written code. Depende sa pagpili ng balangkas ng pagsubok, kabilang dito ang mga aklatan, compiler, tool at API. Ang Java unit testing frameworks ay nagbibigay ng matatag na mga kontrol sa seguridad para sa application. Kung may nakitang kahinaan sa seguridad, maaari itong ayusin sa website/suporta ng framework. Nag-aalok ang mga tagalikha ng framework ng mga built-in na function at module na nagpapataas sa kahusayan at bilis ng mga programmer at tester. Ano ang aasahan mula sa mga platform ng pagsubok ngayong dekada? Ipinakita namin sa iyong atensyon ang isang listahan ng pinakamahusay na mga framework ng pagsubok sa Java noong 2020.
1. JBhave
Ang JBehave ay isa sa pinakamahusay na mga framework ng pagsubok sa Java na may suporta sa BDD (Behavior-Driven Development). Ang BDD ay isang evolutionary na pagpapatuloy ng TDD (Test-Driven Development) at ATDD (Acceptance Test-Driven Development). Pangunahing distribusyon ng Jbehave:- JBehave Web,
- JBehave Core.
- Commons-lang-2.4.jar
- Junit-4.1.0.jar
- Jbehave-core-3.8.jar
- Freemarker-2.3.9.jar
- Plexus-utils-1.1.jar
- Paranamer-2.5.jar
- org.apache.commons.collections.jar
- org.apache.commons.io.jar
- Ang balangkas ng pagsubok ng JBehave ay napakahusay salamat sa maalalahanin nitong mga detalye at madaling gamitin na kadalian ng paggamit.
- Ang JBehave ay gumagawa ng isang mahusay na trabaho para sa BDD, na nag-aalok ng integrasyon sa pagitan ng magkahiwalay na mga development team na nagtatrabaho sa iba't ibang mga proyekto ngunit may katulad na mga detalye.
- Ang JBehave framework ay gumagamit ng isang semi-opisyal na wika na lubhang nakakatulong para sa mga developer. Tinitiyak ng bokabularyo ng domain ang pagkakapare-pareho sa istraktura ng koponan.
- Ang mga stakeholder pati na rin ang mga project manager ay nakakakuha ng higit na transparency sa mga test team at development team na performance dahil ang mga detalye ay sumusunod sa parehong format.
2. JUnit
Ang JUnit ay isang open-source regression testing framework na pangunahing ginagamit ng mga may karanasang developer para magsagawa ng unit testing, pabilisin ang programming, at pagbutihin ang kalidad ng Java code. Ang pangunahing layunin ng paggamit ng tool na ito ay upang paganahin ang mga developer ng Java na mag-script at magpatupad ng mga paulit-ulit na kaso ng pagsubok. Ito ay isa sa pinakakaraniwang ginagamit na unit testing frameworks sa Java. Kadalasan, ginagamit ang JUnit upang subukan ang maliliit na piraso ng code. Maaari rin itong magamit upang magsagawa ng mga awtomatikong pagsusuri sa website sa pamamagitan ng pagsasama-sama ng Selenium WebDriver sa JUnit para sa awtomatikong pagsusuri sa Java. Kapag nagdaragdag ng anumang bagong code, hihilingin sa tester na i-reload ang buong test case at tiyaking walang mga break. Mga Tampok ng JUnit:- Mga suite ng pagsubok;
- Paggamit ng mga karaniwang hanay ng mga bagay;
- Mga klase sa JUnit;
- Mga Test Runner.
- Magkaroon ng pinakabagong bersyon ng JDK sa iyong computer.
- (Opsyonal) I-unzip ang $JUNIT_HOME/src. jar file.
- Mga kasanayan at karanasan sa pagbuo ng mga application sa isang object-oriented na wika, mas mabuti ang Java.
- I-download ang bagong bersyon ng JUnit at i-configure ang framework.
- Dahil sinusuportahan ng JUnit ang mga feature ng Java 8, maaari itong magamit para sa parehong integration at mga unit test.
- Pinapadali ng framework na makita ang mga error sa maagang yugto, na nagreresulta sa malusog at maaasahang code.
- Nakikita ito ng mga programmer na nagtatrabaho sa JUnit na lubhang kapaki-pakinabang. Ginagawa nitong mas madaling basahin ang code at suriin ang mga kahinaan.
- Binibigyang-daan ka ng JUnit na lumikha ng code na walang mga error at mas madaling mabasa.
- Tugma sa halos lahat ng pangunahing IDE tulad ng Eclipse, NetBeans, Maven, Ant at IntelliJ IDEA. Para madali kang magsulat at magpatakbo ng mga unit test nang direkta mula sa mga IDE na ito.
- Gamit ang na-update na bersyon ng JUnit (bersyon 5), madali mong matukoy ang isang pagbubukod.
- Ang unit testing framework ay maaaring gamitin sa Java 5 o iba pang mga bersyon.
3. Katahimikan
Ang Serenity , na dating kilala bilang Thucydides, ay isa sa pinakamalawak na ginagamit na open source Java testing frameworks. Tutulungan ka ng Serenity BDD framework na lumikha ng malinaw, nakaayos at napapamahalaang pamantayan sa pagsubok. Pinapalawak nito ang functionality ng parehong Selenium WebDriver at JUnit. Gamit ang espesyal na platform na ito, maaari kang lumikha ng mga mapaglarawang ulat sa pagsubok. Bilang karagdagan, maaari mong itugma ang awtomatikong pagsubok sa iyong mga pangangailangan. Sa pangkalahatan, ginagawang mas maaasahan at mahusay ng balangkas na ito ang pagbuo ng Java. Mga Tampok ng Serenity:- Open source na proyekto;
- Buong mga ulat sa mga resulta ng pagsubok at pagpapatupad;
- Ulat sa format ng negosyo para sa bawat pagsubok.
- JDK 5 o mas bago.
- Maven 3.0 o mas bago.
- IDE (karaniwang Eclipse).
- Tinutulungan ng framework ang tester na gumawa ng mga test case para sa mga serbisyo ng REST.
- Pinapanatili ang balanse sa pagitan ng paglalarawan at pag-unawa sa isang test case, pati na rin ang diskarte sa pagpapatupad nito.
- Ang mga user ay hindi kailangang gumastos ng karagdagang oras sa pagpapanatili o paglikha ng kanilang sariling automated na imprastraktura.
- Maaaring isama ang Serenity sa iba't ibang balangkas ng pag-unlad tulad ng Spring at mga balangkas ng pagsubok tulad ng Selenium, JBehave, pati na rin ang mga tool sa pamamahala ng proyekto tulad ng JIRA.
4.PagsubokNG
Ang TestNG ay isa sa pinakasikat na Java testing frameworks na ginagamit para sa integration, functional, at unit testing. Nilikha ito ni Cedric Beist noong 2004 at na-update na ngayon sa bersyon 7. Ito ang pangunahing katunggali ng balangkas ng JUnit. Ang TestNG ay katulad ng JUnit, ngunit may ilang anotasyon at feature na hindi sinusuportahan ng Junit. Maaaring gamitin ang TestNG sa halos lahat ng uri ng software testing, kabilang ang end-to-end, unit, integration, at functional. Parehong TestNG at JUnit ay Java-based na mga balangkas na nagbibigay-daan sa iyong magsulat ng mga pagsubok at i-verify ang resulta. Kung matagumpay ang pagsubok, makakakita ka ng berdeng bar, kung hindi, makakakita ka ng pulang bar. Mga Tampok ng TestNG:- Sinusuportahan ang pagsubok ng mga umaasa na pamamaraan;
- Flexible na pagsasaayos ng pagsubok;
- Sinusuportahan ang matibay na modelo ng pagpapatupad;
- Naka-install sa BeanShell para sa karagdagang flexibility.
- Pinakabagong bersyon ng JDK;
- Pinakabagong bersyon ng Eclipse;
- Pag-unawa at praktikal na karanasan ng Java programming language o iba pang object-oriented programming language.
- Binibigyang-daan kang lumikha at magpatakbo ng parallel na pagsubok ng maramihang mga fragment ng code.
- Kapag nagpapatupad ng test case, maaari kang bumuo ng ulat sa HTML na format.
- Ang mga pagsusulit ay madaling maisaayos at mapangkat ayon sa mga priyoridad. Mas madaling magpatakbo ng mga pagsubok sa pamamagitan lamang ng paglalagay ng balangkas sa lugar upang gawin ang panlabas o pagsubok sa database.
- Madaling maitakda ang mga priyoridad sa pamamagitan ng pag-parameter sa data at paggamit ng mga anotasyon.
5.Selenide
Ang Selenide ay isang sikat na open source Java testing framework na pinapagana ng Selenium WebDriver. Ito ay isang mahusay na tool para sa pagsulat ng tumpak, komunikasyon at matatag na mga pagsubok sa UI para sa isang Java application. Pinapalawak nito ang paggana ng WebDriver at JUnit. Ang WebDriver ay isa sa aming mga paboritong tool sa pagsubok ng UI, ngunit wala itong mga kakayahan sa pag-timeout. Halimbawa, pagsubok sa mga teknolohiya sa web gaya ng Ajax. Ang Selenide framework ay madaling pinangangasiwaan ang lahat ng mga problemang ito. Dagdag pa, mas madaling i-install at matuto. Kailangan mo lang mag-focus sa logic at gagawin ni Selenide ang iba. Mga Tampok ng Selenide:- Hindi nangangailangan ng kumplikadong pag-setup;
- Hindi nangangailangan ng pagsusulat ng maraming code;
- Makakatipid ng maraming oras;
- Mainam na configuration para sa CI Tool tulad ng Jenkins.
- JDK 5 o mas bago;
- Maven 3.0 o iba pang mga bersyon;
- Integrated development environment (IDE) na tool. Kadalasan, mas gusto ng lahat ng developer ang Eclipse dahil mas madaling gamitin ang kumbinasyon ng Eclipse at Maven.
- Ginagawa ng Selenide na tumpak at matatag ang iyong mga pagsubok, nilulutas (halos) lahat ng problema sa Ajax/timing.
- Pagbawas sa proseso ng pagsulat ng mga test case.
- Suporta para sa mga pagsubok ng mga application na binuo gamit ang AngularJS.
- Binabawasan ang bilang ng mga utos na dating ginamit ng iba pang tool ng Selenium.
6. Sukat
Ang mga tagalikha ng Selenium Thoughtworks ay naglabas ng isa pang Java testing framework para sa pagsasagawa ng mga automated na pagsubok sa mga web application. Ang Gauge ay isang libre at open source na balangkas ng automation ng pagsubok para sa Java na nagpapababa sa pasanin ng pagsubok sa pagtanggap na may mas kaunting code. Isa ito sa pinakakaraniwang ginagamit na mga framework ng pagsubok sa Java sa kategoryang tech stack para sa pagsubok sa mga mobile website. Ang mga automated na pagsubok gamit ang framework na ito ay maaaring makagawa ng mga pagsubok na madaling basahin anuman ang wika. Katulad ng Selenium, sinusuportahan ng balangkas ng pagsubok na ito ang maramihang mga programming language kabilang ang Ruby, JavaScript, Java, C#, at Python. Mga Tampok ng Gauge:- Madaling gamitin, nababaluktot na syntax;
- Gumagamit ng mala-negosyong wika;
- Sinusuportahan ang maramihang mga wika at platform;
- Maraming plugin.
- I-download at i-install ang Maven ;
- Operating system Microsoft Windows 10 o mas mataas;
- Memorya – 512 MB RAM (minimum);
- Ang Gauge plugin ay dapat na naka-configure sa iyong integrated development environment (IDE) o ang Gauge framework ay dapat na naka-install kung ikaw ay nagpapatakbo ng pagsubok mula sa CMD/Terminal.
- Ginagawang nababasa at naiintindihan ang mga script.
- Madaling gamitin, flexible na syntax at suporta para sa lahat ng uri ng mga wika (Java, Javascript, C#, Ruby, Python, atbp.) at mga platform.
- Binibigyang-daan kang lumikha ng mga pagsubok sa integrated development environment (IDE) na iyong pinili (IntelliJ, Vi VS Code, Visual Studio, Maven, Gradle, Eclipse, atbp.).
- Nagsasagawa ng parallel testing at bumubuo ng mga custom na ulat.
- Madaling sumubok ng malalaking set ng data habang pinapanatili ang mataas na katumpakan at pagiging madaling mabasa.
- Ang gauge ay isang bagong framework, kaya walang masyadong alam ang mga user tungkol dito.
- Hindi sinusuportahan ng gauge ang secure na parallel na pagpapatupad ng mga detalye sa loob ng IntelliJ dahil sa katotohanan na ang driver ay static at dapat gamitin kasabay ng mga script.
7. Geb
Ang Geb ay isang browser testing framework na binuo sa ibabaw ng Selenium WebDriver. Ginagawa nitong perpekto para sa mga awtomatikong pagsubok, at madali mong maisagawa ang cross-browser na pagsubok sa lahat ng browser na sinusuportahan ng WebDriver. Ang Geb ay nagbibigay ng mga pambihirang kakayahan para sa front-end na pagsusuri ng data, pagsubok sa web, at marami pang iba. Ang ginagawa nitong kakaiba ay ang paraan ng pagtatanong nito sa mga pahina ng HTML, na gumagawa ng tulad-jQuery na syntax. Ang Geb platform ay nag-aalok din ng katutubong suporta para sa Page Object Model . Maaaring gamitin ang Geb para sa pangkalahatang pag-scrape, pag-script, at para din sa automation. Ito ay pantay na angkop bilang isang solusyon para sa pagsubok sa pagtanggap, pagsubok sa web o pagsusuri sa pagganap salamat sa pagsasama nito sa mga balangkas ng pagsubok tulad ng TestNG, JUnit at Spock. Mga Tampok ng Geb:- Buong jQuery syntax na suporta;
- Lisensya ng Apache 2.0;
- Katugma sa WebDriver;
- Katatagan ng page object modeling;
- Groovy articulation.
- Kailangan mong i-download at i-install ang Maven ;
- Availability ng Java 8 o mas bago;
- Mga kredensyal sa pagpapatunay at pagpapatunay ng LambdaTest;
- Isang kopya ng LambdaTest repository sa GitHub para sa Geb test automation framework.
- Ang form na Mga Bagay sa Pahina at ang Groovy DSL ng Geb ay ginagawang madaling basahin ang mga pagsusulit dahil halos pareho ang mga ito sa Ingles.
- Nagpapatakbo ng mga pagsubok sa mataas na bilis at nakakatipid sa iyong mga gastos sa pagsubok. Tugma sa iba't ibang mga browser tulad ng Internet Explorer, HTMLUnit, Firefox at Chrome.
- Nagsasagawa ng mga pagsubok sa real time at sa isang tunay na kapaligiran—isa na makikita ng isang user. Nagbibigay ng maximum na kahusayan ng mga pagsubok sa loob ng isang script.
- Binibigyang-daan kang magsagawa ng pagsusuri ng regression nang walang mga problema. Maaari mong patakbuhin ang mga kaso ng pagsubok sa Geb upang suriin kung ang anumang aktibong functionality ay nasira pagkatapos ng pagbabago o pag-aayos sa application.
- Ang downside ng Geb ay gumagamit ito ng WebDriver sa wikang Groovy. Samakatuwid, ang partikular na wika lamang ang sinusuportahan kapag gumagamit ng Webdriver. Gayunpaman, kung susubukan mong gamitin ang WebDriver nang direkta, susuportahan nito ang iba pang mga wika, kabilang ang Java, Ruby, C# at Python.
- Ang Geb ay hindi angkop para sa maliliit na proyekto, ngunit mahusay na gumagana para sa malalaking gawain. Kung ang iyong web application ay hindi naglalaman ng mga pahina at mga form kung saan dapat dumaloy ang data, ang istraktura nito ay maaaring mukhang mahirap gamitin.
8.Spock
Ang Spock ay isang sikat na test automation framework para sa Java. Ito ay nakasulat sa Groovy at nagbibigay-daan sa mga tester na magpatakbo ng mga pagsubok na batay sa data sa Java Virtual Machine. Nagbibigay ang Spock ng mahusay na pagiging tugma sa maraming wika na sumusuporta sa JVM. Ang isa sa mga tampok ng Spock ay ang dokumentasyon ng code at pagiging madaling mabasa ng code ay organisado at maayos, at maaari nitong bigyang-kahulugan ang mga simpleng pangungusap sa Ingles. Madalas itong ginagamit ng mga developer ng software upang lumikha ng mga enterprise application sa Java. Para sa mga kadahilanang ito, ang Spock ay naging pinakasikat at madaling gamitin sa Java testing framework noong 2020. Mga Tampok ng Spock:- Sa katunayan, ito ay isang pinahabang bersyon ng balangkas ng JUnit Java;
- Suporta para sa mga mock na bagay;
- Ang mga pagsusulit ay maaaring isulat sa anumang wika.
- Pinakabagong bersyon ng JDK;
- Na-update na bersyon ng Eclipse;
- Kaalaman sa Java programming language.
- Nakamamanghang pagiging madaling mabasa, tinitiyak ang pagiging tugma sa mga simpleng pangungusap sa Ingles kumpara sa iba pang mga framework ng pagsubok sa automation ng Java.
- Ang Stubbing at Panlilibak sa Spock ay mas madali at hindi masakit kaysa dati. Bilang karagdagan, ang mga ito ay binuo sa balangkas.
- Mas malinaw at mas maikling parameterization.
- Pinapanatili ang nakapaligid na konteksto, na ginagawang mas madaling matuklasan ang sanhi ng isang pagkabigo.
- Pinasimple at komunikasyong Domain Specific Language (DSL).
- Ito ay nakasulat sa Groovy, kaya dapat ay mayroon kang pangunahing kaalaman sa Groovy.
- Maaari mong makitang medyo clunky ang framework ng Spock, ngunit kapag naging pamilyar ka na dito, hindi mo na iisipin ang paglipat sa ibang mga framework ng pagsubok sa Java.
9. HttpUnit
Ang HttpUnit ay isang malawakang ginagamit na open source testing framework. Pinapayagan ka nitong subukan ang mga website nang walang anumang mga kinakailangan sa browser. Ang HttpUnit ay mahusay para sa pagpapatakbo ng mga awtomatikong pagsubok na script para sa mga web application. Gaya ng ipinahihiwatig ng pangalan, maaaring gamitin ang HttpUnit para sa mga unit test. Gayunpaman, ang mga karaniwang elemento ng web tier gaya ng mga servlet, JSP (JavaServer Pages), at iba pang elemento ng template ay hindi pumapayag sa mga unit test. Nakasulat sa Java, pinapayagan ka ng balangkas na magpatakbo ng mga pagsubok sa mga ibinalik na pahina, XML DOM, teksto, mga lalagyan ng talahanayan, mga link at mga form. Mga Tampok ng HttpUnit:- Suporta sa cookie;
- Sinusuportahan ang HTTPS at HTTP protocol;
- Suporta sa tugon ng HTML;
- Suporta sa proxy server;
- Napakahusay na suporta sa JavaScript.
- Dapat suportahan ng system ang Java JDK 1.4 o pinakabagong bersyon.
- Magdagdag ng Tidy.jar at httpunit.ja, na isinama sa HttpUnit, sa iyong classpath; Tiyakin din na ang XML parser ay paunang naka-install.
- Kung gumagamit ka ng mas lumang bersyon ng Java, dapat kang magsama ng JAXP-compatible XML parser sa iyong classpath.
- Ang pinakabagong bersyon ng HttpUnit ay magagamit sa pahinang ito .
- Binibigyang-daan kang i-automate ang pagsubok ng mga web application at tumulong sa pagsubok ng regression.
- Ang isa sa mga pakinabang ng HTTPUnit ay na ito ay mas mabilis kaysa sa iba pang mga test automation framework tulad ng Selenium.
- Napakahusay na suporta sa JavaScript, na nagbibigay-daan sa iyong gayahin ang gawain ng isang pasadyang browser (IE o Firefox).
- Ginagamit ng HTTPUnit ang Rhino JavaScript engine bilang pangunahing wika nito at nagbibigay ng object execution nang eksakto para sa pagpapatupad ng browser.
- Ang mga unit test mula sa mga sikat na JavaScript library ay isinama sa sariling unit test ng HtmlUnit batay sa mga unit test na ito. Sinusuportahan ang jQuery 1.11.3, MochiKit 1.4.1, MooTools 1.2.1, atbp. na mga aklatan, mahusay na gumagana sa HtmlUnit.
- Kakayahang magpasok ng code sa kasalukuyang pahina gamit ang HtmlPage.executeJavascript(String yourJsCode).
- Ito ay isang magandang opsyon para sa pagpapatakbo ng mga simpleng pagsubok, ngunit ang paggawa ng mga kumplikadong pagsubok ay mangangailangan ng mas maraming code.
- Ang isang framework tulad ng Selenium ay mas partikular, na nagbibigay-daan sa browser-centric na pag-uugali na hindi naglilimita sa mga application na sinusuri. Sa HttpUnit framework makakakuha ka ng limitadong suporta maliban sa ilang pangunahing browser.
10. JWebUnit
Ang JWebUnit ay isang Java-based testing framework na isang extension ng JUnit. Ito ay ginagamit para sa integration, regression at functional testing. Pinagsasama ng JWebUnit ang mga kasalukuyang aktibong framework tulad ng HTMLUnit at Selenium sa isang simpleng interface ng pagsubok. Sa ganitong paraan maaari mong agad na suriin ang katumpakan ng iyong mga web application. Maaaring gamitin ang JWebUnit upang magsagawa ng mga pagsubok sa screen navigation. Nag-aalok din ang platform ng advanced na Java application programming interface para sa pag-navigate sa web application upang i-verify ang katumpakan ng application. Isinasaalang-alang nito ang pag-navigate sa link, pagpasok at pagsusumite ng form, pagbibigay-katwiran sa mga nilalaman ng talahanayan, at iba pang mga karaniwang tampok ng mga aplikasyon sa negosyo. Mga Tampok ng JWebUnit:- Top-level na Java API para sa pag-navigate sa isang web application.
- Open source Java based framework.
- Kailangan mong i-install ang Maven.
- Ang kasalukuyang matatag na bersyon ng JWebUnit ay 3.3. Kinakailangan ang Java 1.7.
- Idagdag ang plugin na kailangan mo: HtmlUnit para sa mas mabilis na mga pagsubok at mahusay na suporta para sa Javascript at Webdriver: BETA na kalidad.
- Upang pamahalaan ang mga dependency sa Eclipse kapag gumagamit ng Maven 2, gamitin ang m2e plugin.
- Ginagamit upang subukan ang on-screen navigation.
- Nagbibigay ng top-level na API para sa pag-navigate sa mga web application.
- Ang simpleng nabigasyon na may madaling ma-access na mga pahayag ay nagbibigay-daan sa iyong gumawa ng mga pagsubok nang mas mabilis kaysa sa paggamit ng JUnit o HtmlUnit.
- Kung may gustong lumipat mula sa HtmlUnit patungo sa iba pang uri ng mga plugin gaya ng Selenium, hindi na kailangang muling isulat ang mga pagsubok.
GO TO FULL VERSION