Manba: Dev.to Java blokini sinovdan o'tkazish tizimi ishlab chiquvchilar uchun ilovalar yoki boshqa har qanday dasturiy ta'minot yaratish uchun standart, murakkab va kengaytiriladigan vositalarni taqdim etadi. Ular oldindan yozilgan kodni o'z ichiga olgan ko'p sonli ob'ektlardan iborat. Sinov tizimini tanlashga qarab, u kutubxonalar, kompilyatorlar, asboblar va APIlarni o'z ichiga oladi. Java birliklarini sinovdan o'tkazish tizimi dastur uchun mustahkam xavfsizlik boshqaruvini ta'minlaydi. Agar xavfsizlik zaifligi aniqlansa, uni ramka veb-saytida/qo'llab-quvvatlashida tuzatish mumkin. Framework yaratuvchilari hatto dasturchilar va testerlarning samaradorligi va tezligini oshiradigan o'rnatilgan funktsiyalar va modullarni taklif qilishadi. Ushbu o'n yillikda sinov platformalaridan nimani kutish mumkin? Sizning e'tiboringizga 2020 yildagi eng yaxshi Java test ramkalari ro'yxatini taqdim etamiz.
1. JO'zini tuting
JBehave BDD (Xulq-atvorga asoslangan rivojlanish) qo'llab-quvvatlanadigan eng yaxshi Java sinov tizimlaridan biridir. BDD TDD (Test-Driven Development) va ATDD (Acceptance Test-Driven Development) ning evolyutsion davomi hisoblanadi. Jbehave-ning asosiy taqsimotlari:- 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
- JBehave test tizimi o'zining puxta o'ylangan tafsilotlari va intuitiv foydalanish qulayligi tufayli ustundir.
- JBehave BDD uchun ajoyib ish qiladi, turli loyihalarda ishlaydigan, lekin o'xshash xususiyatlarga ega bo'lgan alohida ishlab chiqish guruhlari o'rtasida integratsiyani taklif qiladi.
- JBehave ramkasi ishlab chiquvchilar uchun juda foydali bo'lgan yarim rasmiy tildan foydalanadi. Domen lug'ati jamoa tuzilishidagi izchillikni ta'minlaydi.
- Manfaatdor tomonlar va loyiha menejerlari test guruhlari va ishlab chiqish guruhi faoliyatida oshkoralikka erishadilar, chunki spetsifikatsiyalar bir xil formatga mos keladi.
2. JUnit
JUnit ochiq manbali regressiya test tizimi boʻlib, u asosan tajribali ishlab chiquvchilar tomonidan birlik testini oʻtkazish, dasturlashni tezlashtirish va Java kodining sifatini yaxshilash uchun foydalaniladi. Ushbu vositadan foydalanishning asosiy maqsadi Java dasturchilariga takrorlanadigan test holatlarini skript qilish va amalga oshirish imkonini berishdir. Bu Java-da eng ko'p ishlatiladigan birliklarni sinovdan o'tkazish ramkalaridan biridir. Ko'pincha JUnit kichik kod qismlarini sinab ko'rish uchun ishlatiladi. Bundan tashqari, avtomatlashtirilgan Java testi uchun Selenium WebDriver-ni JUnit bilan birlashtirib, avtomatlashtirilgan veb-sayt testlarini amalga oshirish uchun ham foydalanish mumkin. Har qanday yangi kod qo'shilganda, testerdan to'liq sinov holatlarini qayta yuklash va tanaffuslar yo'qligiga ishonch hosil qilish so'raladi. JUnit xususiyatlari:- Test to'plamlari;
- Umumiy ob'ektlar to'plamidan foydalanish;
- JUnit sinflari;
- Sinovchilar.
- Kompyuteringizda JDK ning so'nggi versiyasi bo'lsin.
- (Ixtiyoriy) $JUNIT_HOME/src. jar fayli.
- Ob'ektga yo'naltirilgan tilda, yaxshisi Java-da ilovalarni ishlab chiqish ko'nikmalari va tajribasi.
- JUnitning yangi versiyasini yuklab oling va ramkani sozlang.
- JUnit Java 8 xususiyatlarini qo'llab-quvvatlaganligi sababli, u integratsiya va birlik testlari uchun ishlatilishi mumkin.
- Ramka xatolarni dastlabki bosqichda aniqlashni osonlashtiradi, natijada sog'lom va ishonchli kod paydo bo'ladi.
- JUnit bilan ishlaydigan dasturchilar uni juda foydali deb bilishadi. Bu kodni o'qish va zaifliklarni tekshirishni osonlashtiradi.
- JUnit sizga xatosiz va yaxshi o'qilishi mumkin bo'lgan kod yaratish imkonini beradi.
- Eclipse, NetBeans, Maven, Ant va IntelliJ IDEA kabi deyarli barcha asosiy IDElar bilan mos keladi. Shunday qilib, siz to'g'ridan-to'g'ri ushbu IDE'lardan birlik testlarini osongina yozishingiz va bajarishingiz mumkin.
- JUnitning yangilangan versiyasidan (5-versiya) foydalanib, siz istisnoni osongina aniqlashingiz mumkin.
- Birlik test tizimi Java 5 yoki boshqa versiyalar bilan ishlatilishi mumkin.
3. Osoyishtalik
Ilgari Thucydides nomi bilan ma'lum bo'lgan Serenity Java-ni sinovdan o'tkazish uchun eng keng tarqalgan ochiq manbalardan biridir. Serenity BDD tizimi aniq, tuzilgan va boshqariladigan test mezonlarini yaratishga yordam beradi. U Selenium WebDriver va JUnit funksiyalarini kengaytiradi. Ushbu maxsus platforma yordamida siz tavsiflovchi test hisobotlarini yaratishingiz mumkin. Bundan tashqari, siz o'zingizning ehtiyojlaringizga avtomatlashtirilgan testlarni moslashtirishingiz mumkin. Umuman olganda, ushbu ramka Java rivojlanishini yanada ishonchli va samarali qiladi. Tinchlik xususiyatlari:- Ochiq kodli loyiha;
- Sinov va amalga oshirish natijalari bo'yicha to'liq hisobotlar;
- Har bir test uchun biznes formati hisoboti.
- JDK 5 yoki undan yuqori.
- Maven 3.0 yoki undan keyingi versiyalari.
- IDE (odatda Eclipse).
- Ramka testerga REST xizmatlari uchun test holatlarini yaratishda yordam beradi.
- Test ishini tavsiflash va tushunish, shuningdek, uni amalga oshirishga yondashuv o'rtasidagi muvozanatni saqlaydi.
- Foydalanuvchilar o'zlarining avtomatlashtirilgan infratuzilmasini saqlash yoki yaratish uchun qo'shimcha vaqt sarflashlari shart emas.
- Serenity turli xil rivojlanish ramkalari, masalan, Spring va Selenium, JBehave kabi sinov tizimlari, shuningdek JIRA kabi loyihalarni boshqarish vositalari bilan birlashtirilishi mumkin.
4.TestNG
TestNG integratsiya, funktsional va birlik testlari uchun ishlatiladigan eng mashhur Java test tizimlaridan biridir. U 2004 yilda Sedrik Beist tomonidan yaratilgan va hozirda 7-versiyaga yangilangan. U JUnit ramkasining asosiy raqobatchisi hisoblanadi. TestNG JUnit-ga o'xshaydi, lekin ba'zi izohlar va Junit tomonidan qo'llab-quvvatlanmaydigan xususiyatlarga ega. TestNG dasturiy ta'minotni sinovdan o'tkazishning deyarli barcha turlarida, jumladan, end-to-end, birlik, integratsiya va funksionallikda qo'llanilishi mumkin. TestNG ham, JUnit ham Java-ga asoslangan ramkalar bo'lib, testlarni yozish va yakuniy natijani tekshirish imkonini beradi. Agar test muvaffaqiyatli o'tgan bo'lsa, siz yashil chiziqni ko'rasiz, aks holda siz qizil chiziqni ko'rasiz. TestNG xususiyatlari:- Bog'liq usullarni sinovdan o'tkazishni qo'llab-quvvatlaydi;
- Moslashuvchan test konfiguratsiyasi;
- Sog'lom ijro modelini qo'llab-quvvatlaydi;
- Qo'shimcha moslashuvchanlik uchun BeanShell-ga o'rnatilgan.
- Eng so'nggi JDK versiyasi;
- Eclipse-ning so'nggi versiyasi;
- Java dasturlash tili yoki boshqa ob'ektga yo'naltirilgan dasturlash tilini tushunish va amaliy tajriba.
- Bir nechta kod bo'laklarining parallel sinovini yaratish va ishga tushirish imkonini beradi.
- Test ishini amalga oshirishda siz HTML formatida hisobot yaratishingiz mumkin.
- Testlarni osongina tashkil qilish va ustuvorliklarga ko'ra guruhlash mumkin. Tashqi yoki ma'lumotlar bazasini sinovdan o'tkazish uchun ramkani o'rnatish orqali testlarni o'tkazish ancha oson.
- Ma'lumotlarni parametrlash va izohlardan foydalanish orqali ustuvorliklar osongina o'rnatilishi mumkin.
5.Selenid
Selenide - Selenium WebDriver tomonidan ishlab chiqilgan mashhur ochiq manbali Java test tizimi. Bu Java ilovasi uchun aniq, kommunikativ va barqaror UI testlarini yozish uchun ajoyib vositadir. Bu WebDriver va JUnit funksiyalarini kengaytiradi. WebDriver bizning eng sevimli UI sinov vositalarimizdan biridir, ammo unda vaqt tugashi mumkin emas. Masalan, Ajax kabi veb-texnologiyalarni sinab ko'rish. Selenid ramkasi bu muammolarni osongina hal qiladi. Bundan tashqari, uni o'rnatish va o'rganish osonroq. Siz faqat mantiqqa e'tibor qaratishingiz kerak va Selenid qolganini qiladi. Selenid xususiyatlari:- Murakkab sozlashni talab qilmaydi;
- Ko'p kod yozishni talab qilmaydi;
- Ko'p vaqtni tejaydi;
- Jenkins kabi CI Tool uchun ideal konfiguratsiya.
- JDK 5 yoki undan yangiroq;
- Maven 3.0 yoki boshqa versiyalar;
- Integratsiyalashgan rivojlanish muhiti (IDE) vositasi. Ko'pincha, barcha ishlab chiquvchilar Eclipse-ni afzal ko'radilar, chunki Eclipse va Maven kombinatsiyasi bilan ishlash osonroq.
- Selenid testlaringizni aniq va barqaror qiladi, (deyarli) barcha Ajax/vaqt muammolarini hal qiladi.
- Test holatlarini yozish jarayonini qisqartirish.
- AngularJS yordamida ishlab chiqilgan ilovalar testlarini qo'llab-quvvatlash.
- Ilgari boshqa Selenium vositalari tomonidan ishlatilgan buyruqlar sonini kamaytiradi.
6.Oʻlchagich
Selenium Thoughtworks yaratuvchilari veb-ilovalarda avtomatlashtirilgan testlarni amalga oshirish uchun yana bir Java test tizimini chiqardilar. Gauge Java uchun bepul va ochiq manbali test avtomatlashtirish tizimi boʻlib, u kamroq kod bilan qabul qilish testi yukini kamaytiradi. Bu mobil veb-saytlarni sinab ko'rish uchun texnologik stek toifasida eng ko'p ishlatiladigan Java test ramkalaridan biridir. Ushbu tizim yordamida avtomatlashtirilgan testlar tildan qat'i nazar, oson o'qiladigan testlarni ishlab chiqishi mumkin. Seleniumga o'xshab, ushbu test tizimi Ruby, JavaScript, Java, C# va Python kabi bir nechta dasturlash tillarini qo'llab-quvvatlaydi. Ko'rsatkich xususiyatlari:- Foydalanish oson, moslashuvchan sintaksis;
- Ishbilarmonlik tilidan foydalanadi;
- Ko'p tillar va platformalarni qo'llab-quvvatlaydi;
- Ko'p plaginlar.
- Mavenni yuklab oling va o'rnating ;
- Microsoft Windows 10 yoki undan yuqori operatsion tizim;
- Xotira - 512 MB RAM (minimal);
- Gauge plagini integratsiyalashgan ishlab chiqish muhiti (IDE) bilan sozlangan bo'lishi kerak yoki agar siz testni CMD/Terminaldan o'tkazayotgan bo'lsangiz, Gauge ramkasi o'rnatilgan bo'lishi kerak.
- Skriptlarni o'qilishi va tushunarli qiladi.
- Foydalanish oson, moslashuvchan sintaksis va barcha turdagi tillar (Java, Javascript, C#, Ruby, Python va boshqalar) va platformalar uchun yordam.
- Siz tanlagan (IntelliJ, Vi VS Code, Visual Studio, Maven, Gradle, Eclipse va boshqalar) integratsiyalashgan ishlab chiqish muhitida (IDE) testlarni yaratishga imkon beradi.
- Parallel testlarni amalga oshiradi va maxsus hisobotlarni yaratadi.
- Yuqori aniqlik va o'qilishi mumkin bo'lgan holda katta ma'lumotlar to'plamlarini osongina sinovdan o'tkazadi.
- Gauge - bu yangi ramka, shuning uchun foydalanuvchilar bu haqda ko'p narsa bilishmaydi.
- Drayv statik va skriptlar bilan birgalikda ishlatilishi kerakligi sababli Gauge IntelliJ ichida spetsifikatsiyalarning xavfsiz parallel bajarilishini qo'llab-quvvatlamaydi.
7. Geb
Geb - bu Selenium WebDriver-ning ustiga qurilgan brauzerni sinovdan o'tkazish tizimi. Bu uni avtomatlashtirilgan testlar uchun ideal qiladi va siz WebDriver tomonidan qo'llab-quvvatlanadigan barcha brauzerlarda o'zaro brauzer sinovlarini osongina bajarishingiz mumkin. Geb oldingi ma'lumotlarni tahlil qilish, veb-testlar va boshqalar uchun ajoyib imkoniyatlarni taqdim etadi. JQuery-ga o'xshash sintaksisni ishlab chiqaradigan HTML-sahifalarni so'rash usuli uni o'ziga xos qiladi. Geb platformasi, shuningdek, sahifa ob'ekt modeli uchun mahalliy yordamni taklif qiladi . Geb umumiy qirqish, skript yaratish, shuningdek, avtomatlashtirish uchun ishlatilishi mumkin. TestNG, JUnit va Spock kabi test tizimlari bilan integratsiyalashganligi tufayli u qabul qilish testlari, veb-testlar yoki funktsional testlar uchun yechim sifatida juda mos keladi. Geb xususiyatlari:- jQuery sintaksisini to'liq qo'llab-quvvatlash;
- Apache litsenziyasi 2.0;
- WebDriver bilan mos keladi;
- Sahifa ob'ektini modellashtirishning barqarorligi;
- Ajoyib artikulyatsiya.
- Maven ni yuklab olishingiz va o'rnatishingiz kerak ;
- Java 8 yoki undan keyingi versiyalarining mavjudligi;
- LambdaTest autentifikatsiyasi va tekshirish hisob ma'lumotlari;
- Geb testini avtomatlashtirish tizimi uchun GitHub -dagi LambdaTest omborining nusxasi .
- Page Objects shakli va Geb's Groovy DSL testlarni o'qishni osonlashtiradi, chunki ular ingliz tiliga ko'proq yoki kamroq o'xshaydi.
- Sinovlarni yuqori tezlikda o'tkazadi va sinov xarajatlaringizni tejaydi. Internet Explorer, HTMLUnit, Firefox va Chrome kabi turli xil brauzerlar bilan mos keladi.
- Haqiqiy vaqtda va real muhitda testlarni amalga oshiradi - foydalanuvchi kuzatadigan test. Bitta skript ichida testlarning maksimal samaradorligini ta'minlaydi.
- Muammosiz regressiya testini o'tkazishga imkon beradi. Ilovada o'zgartirish yoki tuzatilgandan so'ng biron bir faol funksiya buzilgan yoki yo'qligini tekshirish uchun Geb test holatlarini ishga tushirishingiz mumkin.
- Geb-ning salbiy tomoni shundaki, u Groovy tilida WebDriver-dan foydalanadi. Shuning uchun, Webdriver-dan foydalanilganda faqat ma'lum bir til qo'llab-quvvatlanadi. Biroq, agar siz WebDriver-dan to'g'ridan-to'g'ri foydalanishga harakat qilsangiz, u Java, Ruby, C# va Python kabi boshqa tillarni qo'llab-quvvatlaydi.
- Geb kichik loyihalar uchun mos emas, lekin katta vazifalar uchun yaxshi ishlaydi. Agar veb-ilovangizda ma'lumotlar oqishi kerak bo'lgan sahifalar va shakllar bo'lmasa, uning tuzilishi noqulay ko'rinishi mumkin.
8.Spok
Spock Java uchun mashhur test avtomatlashtirish tizimidir. U Groovy-da yozilgan va testerlarga Java virtual mashinasida ma'lumotlarga asoslangan testlarni o'tkazish imkonini beradi. Spock JVM-ni qo'llab-quvvatlaydigan ko'plab tillar bilan mukammal muvofiqlikni ta'minlaydi. Spock-ning xususiyatlaridan biri shundaki, kod hujjatlari va kodni o'qish tartibli va tartibli, bundan tashqari u oddiy inglizcha jumlalarni sharhlay oladi. Ko'pincha dasturiy ta'minot ishlab chiquvchilari tomonidan Java-da korporativ ilovalar yaratish uchun foydalaniladi. Shu sabablarga ko'ra, Spock 2020 yilda eng ommabop va foydalanuvchilarga qulay Java test tizimiga aylandi. Spock xususiyatlari:- De-fakto, bu JUnit Java ramkasining kengaytirilgan versiyasi;
- Soxta ob'ektlarni qo'llab-quvvatlash;
- Testlar istalgan tilda yozilishi mumkin.
- Eng so'nggi JDK versiyasi;
- Eclipse-ning yangilangan versiyasi;
- Java dasturlash tilini bilish.
- Ajablanarli darajada o'qilishi, boshqa Java avtomatlashtirish test tizimlariga nisbatan oddiy inglizcha jumlalar bilan mosligini ta'minlash.
- Spok bilan stubbing va masxara qilish har qachongidan ham osonroq va og'riqsizdir. Bundan tashqari, ular ramka ichiga qurilgan.
- Aniqroq va qisqaroq parametrlash.
- Atrofdagi kontekstni saqlaydi, bu esa nosozlik sababini aniqlashni osonlashtiradi.
- Soddalashtirilgan va kommunikativ domenga xos til (DSL).
- U Groovy-da yozilgan, shuning uchun siz Groovy haqida asosiy bilimlarga ega bo'lishingiz kerak.
- Siz Spock ramkasini biroz noqulay ko'rishingiz mumkin, lekin u bilan tanishganingizdan so'ng, boshqa Java test ramkalariga o'tish haqida o'ylamaysiz.
9. HttpUnit
HttpUnit keng qo'llaniladigan ochiq kodli test tizimidir. Bu hech qanday brauzer talablarisiz veb-saytlarni sinab ko'rish imkonini beradi. HttpUnit veb-ilovalar uchun avtomatlashtirilgan test skriptlarini ishga tushirish uchun juda yaxshi. Nomidan ko'rinib turibdiki, HttpUnit birlik testlari uchun ishlatilishi mumkin. Biroq, servletlar, JSP (JavaServer sahifalari) va boshqa shablon elementlari kabi keng tarqalgan veb-darajali elementlar birlik testlariga mos kelmaydi. Java-da yozilgan ramka sizga qaytarilgan sahifalar, XML DOM, matn, jadval konteynerlari, havolalar va shakllarda testlarni o'tkazish imkonini beradi. HttpUnit xususiyatlari:- Cookie fayllarini qo'llab-quvvatlash;
- HTTPS va HTTP protokollarini qo'llab-quvvatlaydi;
- HTML javobni qo'llab-quvvatlash;
- Proksi-serverni qo'llab-quvvatlash;
- Zo'r JavaScript-ni qo'llab-quvvatlash.
- Tizim Java JDK 1.4 yoki oxirgi versiyasini qo'llab-quvvatlashi kerak.
- HttpUnit bilan integratsiyalashgan Tidy.jar va httpunit.ja ni sinf yo'lingizga qo'shing; Shuningdek, XML tahlilchisi oldindan o'rnatilganligiga ishonch hosil qiling.
- Agar siz Java-ning eski versiyasidan foydalanayotgan bo'lsangiz, sinf yo'liga JAXP-mos XML tahlilchisini kiritishingiz kerak.
- HttpUnitning so'nggi versiyasi ushbu sahifada mavjud .
- Veb-ilovalarni sinovdan o'tkazishni avtomatlashtirishga imkon beradi va regressiya testida yordam beradi.
- HTTPUnitning afzalliklaridan biri shundaki, u Selenium kabi boshqa sinov tizimlariga qaraganda ancha tezroq.
- Moslashtirilgan brauzer (IE yoki Firefox) ishini simulyatsiya qilish imkonini beruvchi mukammal JavaScript-ni qo'llab-quvvatlash.
- HTTPUnit o'zining asosiy tili sifatida Rhino JavaScript dvigatelidan foydalanadi va brauzerni amalga oshirish uchun aynan ob'ektning bajarilishini ta'minlaydi.
- Mashhur JavaScript kutubxonalarining birlik testlari ushbu birlik testlari asosida HtmlUnitning o'z birlik testlariga birlashtirilgan. JQuery 1.11.3, MochiKit 1.4.1, MooTools 1.2.1 va hokazo kutubxonalarni qo'llab-quvvatlaydi, HtmlUnit bilan ajoyib ishlaydi.
- HtmlPage.executeJavascript (String yourJsCode) yordamida joriy sahifaga kod kiritish imkoniyati.
- Bu oddiy testlarni o'tkazish uchun yaxshi variant, ammo murakkab testlarni yaratish uchun ko'proq kod kerak bo'ladi.
- Selenium kabi ramka yanada aniqroq bo'lib, sinovdan o'tayotgan ilovalarni cheklamaydigan brauzerga asoslangan xatti-harakatlarga imkon beradi. HttpUnit ramkasi bilan siz ba'zi asosiy brauzerlardan tashqari cheklangan yordamga ega bo'lasiz.
10. JWebUnit
JWebUnit Java-ga asoslangan test tizimi bo'lib , JUnit-ning kengaytmasi hisoblanadi. U integratsiya, regressiya va funktsional testlar uchun ishlatiladi. JWebUnit HTMLUnit va Selenium kabi joriy faol ramkalarni oddiy sinov interfeysi bilan birlashtiradi. Shunday qilib, siz veb-ilovalaringizning to'g'riligini darhol tekshirishingiz mumkin. JWebUnit ekran navigatsiyasi testlarini o'tkazish uchun ishlatilishi mumkin. Platforma, shuningdek, ilovaning toʻgʻriligini tekshirish uchun veb-ilovada navigatsiya qilish uchun ilgʻor Java ilovalari dasturlash interfeysini taklif etadi. Bunda havola navigatsiyasi, shaklni kiritish va topshirish, jadval mazmunini asoslash va biznes ilovalarining boshqa umumiy xususiyatlari hisobga olinadi. JWebUnit xususiyatlari:- Veb-ilovada navigatsiya qilish uchun yuqori darajadagi Java API.
- Ochiq manbali Java asosli ramka.
- Mavenni o'rnatishingiz kerak.
- JWebUnitning joriy barqaror versiyasi 3.3. Java 1.7 talab qilinadi.
- Sizga kerak bo'lgan plaginni qo'shing: Tezroq sinovlar va Javascript va Webdriver uchun mukammal qo'llab-quvvatlash uchun HtmlUnit: BETA sifati.
- Maven 2 dan foydalanganda Eclipse-da bog'liqliklarni boshqarish uchun m2e plaginidan foydalaning.
- Ekrandagi navigatsiyani sinash uchun foydalaniladi.
- Veb-ilovalarda navigatsiya qilish uchun yuqori darajadagi API taqdim etadi.
- Oson kirish mumkin bo'lgan tasdiqlar bilan oddiy navigatsiya sizga JUnit yoki HtmlUnit-dan ko'ra tezroq testlarni yaratishga imkon beradi.
- Agar kimdir HtmlUnit-dan Selenium kabi plaginlarning boshqa turlariga o'tishni xohlasa, testlarni qayta yozishning hojati yo'q.
GO TO FULL VERSION