Mənbə: Dev.to Java bölməsinin sınaq çərçivələri tərtibatçılar üçün proqramlar və ya hər hansı digər proqram təminatı yaratmaq üçün standart, mürəkkəb və genişləndirilə bilən alətlər təqdim edir. Onlar əvvəlcədən yazılmış kodu ehtiva edən çoxlu sayda obyektdən ibarətdir. Test çərçivəsinin seçimindən asılı olaraq, bura kitabxanalar, tərtibçilər, alətlər və API-lər daxildir. Java bölməsinin sınaq çərçivələri tətbiq üçün möhkəm təhlükəsizlik nəzarətini təmin edir. Təhlükəsizlik açığı aşkar edilərsə, o, çərçivənin veb saytında/dəstəkində düzəldilə bilər. Çərçivə yaradıcıları hətta proqramçıların və testerlərin səmərəliliyini və sürətini artıran daxili funksiyalar və modullar təklif edirlər. Bu onillikdə sınaq platformalarından nə gözləmək olar? Diqqətinizə 2020-ci ilə olan ən yaxşı Java test çərçivələrinin siyahısını təqdim edirik.
1. Davranış
JBehave BDD (Davranışa əsaslanan İnkişaf) dəstəyi ilə ən yaxşı Java test çərçivələrindən biridir. BDD TDD (Test-Driven Development) və ATDD (Acceptance Test-Driven Development) təkamüllü davamıdır. Jbehave-in əsas paylamaları:- 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-in sınaq çərçivəsi düşünülmüş detalları və intuitiv istifadə asanlığı sayəsində üstündür.
- JBehave BDD üçün əla iş görür, fərqli layihələr üzərində işləyən, lakin oxşar xüsusiyyətlərə malik olan ayrı-ayrı inkişaf qrupları arasında inteqrasiya təklif edir.
- JBehave çərçivəsi tərtibatçılar üçün çox faydalı olan yarı rəsmi dildən istifadə edir. Domen lüğəti komanda strukturunda ardıcıllığı təmin edir.
- Maraqlı tərəflər, eləcə də layihə menecerləri test qrupları və inkişaf qrupunun performansında daha çox şəffaflıq əldə edirlər, çünki spesifikasiyalar eyni formata uyğundur.
2. JUnit
JUnit, ilk növbədə təcrübəli tərtibatçılar tərəfindən vahid testini həyata keçirmək, proqramlaşdırmanı sürətləndirmək və Java kodunun keyfiyyətini yaxşılaşdırmaq üçün istifadə olunan açıq mənbəli reqressiya testi çərçivəsidir. Bu alətdən istifadənin əsas məqsədi Java tərtibatçılarına təkrarlanan test hadisələrini skript etmək və həyata keçirmək imkanı verməkdir. Java-da ən çox istifadə edilən vahid test çərçivələrindən biridir. Çox vaxt JUnit kiçik kod parçalarını sınamaq üçün istifadə olunur. O, həmçinin avtomatlaşdırılmış Java sınağı üçün Selenium WebDriver-i JUnit ilə birləşdirərək avtomatlaşdırılmış veb-sayt testlərini həyata keçirmək üçün istifadə edilə bilər. Hər hansı yeni kod əlavə edərkən, test edəndən tam test hadisələrini yenidən yükləməsi və heç bir fasilə olmadığından əmin olması tələb olunacaq. JUnit Xüsusiyyətləri:- Test dəstləri;
- Ümumi obyekt dəstlərindən istifadə;
- JUnit sinifləri;
- Test Qaçışları.
- Kompüterinizdə JDK-nın ən son versiyası olsun.
- (Könüllü) $JUNIT_HOME/src. jar faylı.
- Obyekt yönümlü bir dildə, tercihen Java-da tətbiqlər hazırlamaq bacarığı və təcrübəsi.
- JUnit-in yeni versiyasını yükləyin və çərçivəni konfiqurasiya edin.
- JUnit Java 8 xüsusiyyətlərini dəstəklədiyi üçün o, həm inteqrasiya, həm də vahid testləri üçün istifadə edilə bilər.
- Çərçivə səhvləri erkən mərhələdə aşkarlamağı asanlaşdırır, nəticədə sağlam və etibarlı kod yaranır.
- JUnit ilə işləyən proqramçılar onu son dərəcə faydalı hesab edirlər. Bu, kodu oxumağı və zəiflikləri yoxlamağı asanlaşdırır.
- JUnit sizə səhvsiz və daha yaxşı oxunaqlı kod yaratmağa imkan verir.
- Eclipse, NetBeans, Maven, Ant və IntelliJ IDEA kimi demək olar ki, bütün əsas IDE-lərlə uyğun gəlir. Beləliklə, siz asanlıqla bu IDE-lərdən vahid testlərini yaza və işlədə bilərsiniz.
- JUnit-in yenilənmiş versiyasından (versiya 5) istifadə edərək, asanlıqla bir istisna müəyyən edə bilərsiniz.
- Vahid sınaq çərçivəsi Java 5 və ya digər versiyalarla istifadə edilə bilər.
3. Sakitlik
Əvvəllər Thucydides kimi tanınan Serenity ən çox istifadə edilən açıq mənbəli Java test çərçivələrindən biridir. Serenity BDD çərçivəsi sizə aydın, strukturlaşdırılmış və idarə oluna bilən test meyarları yaratmağa kömək edəcək. O, həm Selenium WebDriver, həm də JUnit-in funksionallığını genişləndirir. Bu ixtisaslaşmış platforma ilə siz təsviri test hesabatları yarada bilərsiniz. Əlavə olaraq, avtomatlaşdırılmış testi ehtiyaclarınıza uyğunlaşdıra bilərsiniz. Ümumiyyətlə, bu çərçivə Java inkişafını daha etibarlı və səmərəli edir. Sakitlik xüsusiyyətləri:- Açıq mənbə layihəsi;
- Sınaq və tətbiq nəticələrinə dair tam hesabatlar;
- Hər bir test üçün biznes formatı hesabatı.
- JDK 5 və ya daha sonra.
- Maven 3.0 və ya daha sonra.
- IDE (adətən Eclipse).
- Çərçivə testerə REST xidmətləri üçün test nümunələri yaratmağa kömək edir.
- Test işinin təsviri və başa düşülməsi, habelə onun həyata keçirilməsinə yanaşma arasında tarazlığı qoruyur.
- İstifadəçilərin öz avtomatlaşdırılmış infrastrukturunu saxlamaq və ya yaratmaq üçün əlavə vaxt sərf etmələrinə ehtiyac yoxdur.
- Serenity Spring kimi müxtəlif inkişaf çərçivələri və Selenium, JBehave kimi sınaq çərçivələri, eləcə də JIRA kimi layihə idarəetmə vasitələri ilə inteqrasiya oluna bilər.
4.TestNG
TestNG inteqrasiya, funksional və vahid testi üçün istifadə edilən ən məşhur Java test çərçivələrindən biridir. O, 2004-cü ildə Cedric Beist tərəfindən yaradılmış və hazırda 7-ci versiyaya yenilənmişdir. O, JUnit çərçivəsinin əsas rəqibidir. TestNG JUnit-ə bənzəyir, lakin Junit tərəfindən dəstəklənməyən bəzi qeydlər və xüsusiyyətlərə malikdir. TestNG, demək olar ki, bütün növ proqram testlərində, o cümlədən uçdan-uca, vahid, inteqrasiya və funksionallıqda istifadə edilə bilər. Həm TestNG, həm də JUnit Java əsaslı çərçivələrdir və testlər yazmağa və son nəticəni yoxlamağa imkan verir. Test uğurlu olarsa, yaşıl bir çubuq görəcəksiniz, əks halda qırmızı bir çubuq görəcəksiniz. TestNG xüsusiyyətləri:- Asılı metodların sınaqdan keçirilməsini dəstəkləyir;
- Çevik test konfiqurasiyası;
- Möhkəm icra modelini dəstəkləyir;
- Əlavə rahatlıq üçün BeanShell-də quraşdırılmışdır.
- Ən son JDK versiyası;
- Eclipse-in son versiyası;
- Java proqramlaşdırma dilinin və ya digər obyekt yönümlü proqramlaşdırma dilinin başa düşülməsi və praktiki təcrübəsi.
- Çoxlu kod fraqmentlərinin paralel sınaqlarını yaratmağa və işə salmağa imkan verir.
- Test işini həyata keçirərkən siz HTML formatında hesabat yarada bilərsiniz.
- Testlər asanlıqla təşkil edilə və prioritetlərə görə qruplaşdırıla bilər. Xarici test və ya verilənlər bazası testi etmək üçün sadəcə çərçivəni yerinə qoymaqla testləri həyata keçirmək daha asandır.
- Prioritetləri məlumatların parametrləşdirilməsi və annotasiyalardan istifadə etməklə asanlıqla təyin etmək olar.
5.Selenid
Selenide , Selenium WebDriver tərəfindən dəstəklənən məşhur açıq mənbəli Java test çərçivəsidir. Java proqramı üçün dəqiq, ünsiyyətcil və sabit UI testlərini yazmaq üçün əla vasitədir. WebDriver və JUnit-in funksionallığını genişləndirir. WebDriver sevimli UI test alətlərimizdən biridir, lakin onun vaxt aşımı imkanları yoxdur. Məsələn, Ajax kimi veb texnologiyalarının sınaqdan keçirilməsi. Selenid çərçivəsi bütün bu problemləri asanlıqla həll edir. Üstəlik, quraşdırmaq və öyrənmək daha asandır. Sadəcə məntiqə diqqət yetirmək lazımdır və qalanını Selenide edəcək. Selenid Xüsusiyyətləri:- Kompleks quraşdırma tələb etmir;
- Çox kod yazmağı tələb etmir;
- Çox vaxta qənaət edir;
- Jenkins kimi CI Aləti üçün ideal konfiqurasiya.
- JDK 5 və ya daha yeni;
- Maven 3.0 və ya digər versiyalar;
- İnteqrasiya edilmiş inkişaf mühiti (IDE) aləti. Çox vaxt bütün tərtibatçılar Eclipse-ə üstünlük verirlər, çünki Eclipse və Maven birləşmələri ilə işləmək daha asandır.
- Selenide testlərinizi dəqiq və sabit edir, (demək olar ki) bütün Ajax/zamanlama problemlərini həll edir.
- Test işlərinin yazılması prosesinin azaldılması.
- AngularJS istifadə edərək hazırlanmış proqramların sınaqlarına dəstək.
- Əvvəllər digər Selenium alətləri tərəfindən istifadə edilən əmrlərin sayını azaldır.
6. Ölçmə
Selenium Thoughtworks yaradıcıları veb proqramlarda avtomatlaşdırılmış testlərin aparılması üçün daha bir Java test çərçivəsini buraxdılar. Gauge daha az kodla qəbul testi yükünü azaldan Java üçün pulsuz və açıq mənbəli test avtomatlaşdırma çərçivəsidir. Mobil veb saytları sınamaq üçün texnoloji yığın kateqoriyasında ən çox istifadə edilən Java test çərçivələrindən biridir. Bu çərçivədən istifadə edən avtomatlaşdırılmış testlər dildən asılı olmayaraq asan oxunan testlər yarada bilər. Selenium kimi, bu sınaq çərçivəsi Ruby, JavaScript, Java, C# və Python daxil olmaqla bir çox proqramlaşdırma dillərini dəstəkləyir. Ölçmə Xüsusiyyətləri:- İstifadəsi asan, çevik sintaksis;
- İşgüzar dildən istifadə edir;
- Çox dil və platformaları dəstəkləyir;
- Çoxlu plaginlər.
- Maven-i yükləyin və quraşdırın ;
- Əməliyyat sistemi Microsoft Windows 10 və ya daha yüksək;
- Yaddaş - 512 MB RAM (minimum);
- Gauge plagini inteqrasiya olunmuş inkişaf mühitiniz (IDE) ilə konfiqurasiya edilməlidir və ya testi CMD/Terminaldan icra edirsinizsə, Ölçmə çərçivəsi quraşdırılmalıdır.
- Skriptləri oxunaqlı və başa düşülən edir.
- İstifadəsi asan, çevik sintaksis və bütün növ dillər (Java, Javascript, C#, Ruby, Python və s.) və platformalar üçün dəstək.
- Seçdiyiniz inteqrasiya edilmiş inkişaf mühitində (IDE) testlər yaratmağa imkan verir (IntelliJ, Vi VS Code, Visual Studio, Maven, Gradle, Eclipse və s.).
- Paralel testlər həyata keçirir və xüsusi hesabatlar yaradır.
- Yüksək dəqiqliyi və oxunaqlılığı qoruyarkən böyük məlumat dəstlərini asanlıqla sınaqdan keçirir.
- Gauge yeni çərçivədir, ona görə də istifadəçilər bu haqda çox şey bilmirlər.
- Gauge, sürücünün statik olması və skriptlərlə birlikdə istifadə edilməli olması səbəbindən IntelliJ daxilində spesifikasiyaların təhlükəsiz paralel həyata keçirilməsini dəstəkləmir.
7. Geb
Geb, Selenium WebDriver üzərində qurulmuş brauzer sınaq çərçivəsidir. Bu, onu avtomatlaşdırılmış testlər üçün ideal hala gətirir və siz WebDriver tərəfindən dəstəklənən bütün brauzerlərdə asanlıqla çarpaz brauzer testini həyata keçirə bilərsiniz. Geb qabaqcıl məlumatların təhlili, veb testi və daha çox üçün qeyri-adi imkanlar təqdim edir. Onu müstəsna edən, jQuery-yə bənzər sintaksis yaratmaqla HTML səhifələrini sorğulamasıdır. Geb platforması həmçinin Səhifə Obyekt Modeli üçün yerli dəstək təklif edir . Geb ümumi qırıntılar, skriptlər, həmçinin avtomatlaşdırma üçün istifadə edilə bilər. TestNG, JUnit və Spock kimi test çərçivələri ilə inteqrasiyası sayəsində qəbul testi, veb testi və ya funksional test üçün həll yolu kimi eyni dərəcədə uyğundur. Geb Xüsusiyyətləri:- Tam jQuery sintaksis dəstəyi;
- Apache Lisenziyası 2.0;
- WebDriver uyğunluğu;
- Səhifə obyektinin modelləşdirilməsinin sabitliyi;
- Möhtəşəm artikulyasiya.
- Siz Maven-i yükləməli və quraşdırmalısınız ;
- Java 8 və ya daha sonrakı versiyaların mövcudluğu;
- LambdaTest autentifikasiyası və yoxlama etimadnaməsi;
- Geb test avtomatlaşdırma çərçivəsi üçün GitHub -da LambdaTest repozitoriyasının surəti .
- Səhifə Obyektləri forması və Geb-in Groovy DSL testləri ingilis dilinə az-çox bənzədiyi üçün onları oxumağı asanlaşdırır.
- Testləri yüksək sürətlə həyata keçirir və sınaq xərclərinizə qənaət edir. Internet Explorer, HTMLUnit, Firefox və Chrome kimi müxtəlif brauzerlərlə uyğun gəlir.
- Testləri real vaxtda və real mühitdə həyata keçirir - istifadəçinin müşahidə edəcəyi bir test. Tək bir skript daxilində testlərin maksimum səmərəliliyini təmin edir.
- Problemsiz reqressiya testini həyata keçirməyə imkan verir. Tətbiqdə modifikasiyadan və ya düzəlişdən sonra hər hansı aktiv funksiyanın pozulduğunu yoxlamaq üçün Geb sınaq testlərini işə sala bilərsiniz.
- Geb-in mənfi tərəfi odur ki, Groovy dilində WebDriver-dən istifadə edir. Buna görə də, Webdriver istifadə edərkən yalnız həmin xüsusi dil dəstəklənir. Bununla belə, WebDriver-dən birbaşa istifadə etməyə çalışsanız, o, Java, Ruby, C# və Python daxil olmaqla digər dilləri dəstəkləyəcək.
- Geb kiçik layihələr üçün uyğun deyil, lakin böyük vəzifələr üçün yaxşı işləyir. Veb tətbiqinizdə məlumatların axmalı olduğu səhifələr və formalar yoxdursa, onun strukturu çətin görünə bilər.
8. Spock
Spock Java üçün məşhur test avtomatlaşdırma çərçivəsidir. O, Groovy-də yazılmışdır və test edənlərə Java Virtual Maşınında verilənlərə əsaslanan testlər keçirməyə imkan verir. Spock JVM-i dəstəkləyən bir çox dillə əla uyğunluq təmin edir. Spock-un xüsusiyyətlərindən biri kod sənədlərinin və kodun oxunmasının təşkili və səliqəli olmasıdır, üstəlik o, sadə ingiliscə cümlələri şərh edə bilir. Tez-tez proqram tərtibatçıları tərəfindən Java-da korporativ proqramlar yaratmaq üçün istifadə olunur. Bu səbəblərə görə, Spock 2020-ci ildə ən populyar və istifadəçi dostu Java test çərçivəsinə çevrildi. Spock Xüsusiyyətləri:- De-fakto, bu JUnit Java çərçivəsinin genişləndirilmiş versiyasıdır;
- Saxta obyektlərə dəstək;
- Testlər istənilən dildə yazıla bilər.
- Ən son JDK versiyası;
- Eclipse-in yenilənmiş versiyası;
- Java proqramlaşdırma dilini bilmək.
- Cazibədar oxunaqlılıq, digər Java avtomatlaşdırma test çərçivələri ilə müqayisədə sadə İngilis cümlələri ilə uyğunluğu təmin edir.
- Spock ilə ələ salmaq və ələ salmaq həmişəkindən daha asan və ağrısızdır. Bundan əlavə, onlar çərçivəyə tikilir.
- Daha aydın və daha qısa parametrləşdirmə.
- Uğursuzluğun səbəbini aşkar etməyi asanlaşdıraraq ətrafdakı konteksti qoruyur.
- Sadələşdirilmiş və kommunikativ Domain Spesifik Dil (DSL).
- Groovy-də yazılmışdır, ona görə də siz Groovy haqqında əsas biliklərə sahib olmalısınız.
- Spock çərçivəsini bir az çətin tapa bilərsiniz, lakin onunla tanış olduqdan sonra digər Java test çərçivələrinə keçmək barədə düşünməyəcəksiniz.
9. HttpUnit
HttpUnit geniş istifadə olunan açıq mənbə test çərçivəsidir. Bu, heç bir brauzer tələbləri olmadan veb saytları sınamağa imkan verir. HttpUnit veb proqramları üçün avtomatlaşdırılmış sınaq skriptlərini işə salmaq üçün əladır. Adından da göründüyü kimi, HttpUnit vahid testləri üçün istifadə edilə bilər. Bununla belə, servletlər, JSP (JavaServer Səhifələri) və digər şablon elementləri kimi ümumi veb səviyyəli elementlər vahid testləri üçün uyğun deyil. Java-da yazılmış çərçivə sizə qaytarılmış səhifələr, XML DOM, mətn, cədvəl konteynerləri, keçidlər və formalarda testlər keçirməyə imkan verir. HttpUnit-in xüsusiyyətləri:- Cookie dəstəyi;
- HTTPS və HTTP protokollarını dəstəkləyir;
- HTML cavab dəstəyi;
- Proksi server dəstəyi;
- Əla JavaScript dəstəyi.
- Sistem Java JDK 1.4 və ya ən son versiyasını dəstəkləməlidir.
- HttpUnit ilə inteqrasiya olunmuş Tidy.jar və httpunit.ja-nı sinif yolunuza əlavə edin; Həmçinin XML analizatorunun əvvəlcədən quraşdırıldığından əmin olun.
- Əgər Java-nın köhnə versiyasından istifadə edirsinizsə, sinif yolunuza JAXP uyğun XML analizini daxil etməlisiniz.
- HttpUnit proqramının ən son versiyası bu səhifədə mövcuddur .
- Veb proqramlarının sınaqdan keçirilməsini avtomatlaşdırmağa imkan verir və reqressiya testində kömək edir.
- HTTPUnit-in üstünlüklərindən biri onun Selenium kimi digər test avtomatlaşdırma çərçivələrindən daha sürətli olmasıdır.
- Fərdi brauzerin (IE və ya Firefox) işini simulyasiya etməyə imkan verən əla JavaScript dəstəyi.
- HTTPUnit əsas dili kimi Rhino JavaScript mühərrikindən istifadə edir və obyektin tam olaraq brauzerin tətbiqi üçün icrasını təmin edir.
- Məşhur JavaScript kitabxanalarından vahid testləri bu vahid testlərinə əsaslanan HtmlUnit-in öz vahid testlərinə inteqrasiya olunur. jQuery 1.11.3, MochiKit 1.4.1, MooTools 1.2.1 və s. kitabxanaları dəstəkləyir, HtmlUnit ilə əla işləyir.
- HtmlPage.executeJavascript (String yourJsCode) istifadə edərək cari səhifəyə kodu daxil etmək imkanı.
- Bu, sadə testləri həyata keçirmək üçün yaxşı seçimdir, lakin mürəkkəb testlərin yaradılması daha çox kod tələb edəcəkdir.
- Selenium kimi çərçivə daha spesifikdir və sınaqdan keçirilən tətbiqləri məhdudlaşdırmayan brauzer mərkəzli davranışa imkan verir. HttpUnit çərçivəsi ilə bəzi əsas brauzerlər istisna olmaqla, siz məhdud dəstək alacaqsınız.
10. JWebUnit
JWebUnit JUnit-in uzantısı olan Java əsaslı sınaq çərçivəsidir . Bu inteqrasiya, reqressiya və funksional test üçün istifadə olunur. JWebUnit HTMLUnit və Selenium kimi cari aktiv çərçivələri sadə test interfeysi ilə birləşdirir. Bu yolla siz dərhal veb tətbiqlərinizin düzgünlüyünü yoxlaya bilərsiniz. JWebUnit ekran naviqasiya testlərini yerinə yetirmək üçün istifadə edilə bilər. Platforma həmçinin tətbiqin düzgünlüyünü yoxlamaq üçün veb proqramında naviqasiya etmək üçün qabaqcıl Java proqramlaşdırma interfeysi təklif edir. Bu, keçid naviqasiyasını, forma girişini və təqdimini, cədvəl məzmununun əsaslandırılmasını və biznes tətbiqlərinin digər ümumi xüsusiyyətlərini nəzərə alır. JWebUnit-in xüsusiyyətləri:- Veb proqramında naviqasiya üçün yüksək səviyyəli Java API.
- Açıq mənbəli Java əsaslı çərçivə.
- Maven-i quraşdırmalısınız.
- JWebUnit-in hazırkı stabil versiyası 3.3-dür. Java 1.7 tələb olunur.
- Lazım olan plaqini əlavə edin: Daha sürətli testlər və Javascript və Webdriver üçün əla dəstək üçün HtmlUnit: BETA keyfiyyəti.
- Maven 2 istifadə edərkən Eclipse-də asılılıqları idarə etmək üçün m2e plaginindən istifadə edin.
- Ekranda naviqasiyanı yoxlamaq üçün istifadə olunur.
- Veb proqramlarında naviqasiya üçün yüksək səviyyəli API təmin edir.
- Asanlıqla əldə edilə bilən təsdiqlərlə sadə naviqasiya JUnit və ya HtmlUnit istifadə etməkdən daha sürətli testlər yaratmağa imkan verir.
- Kimsə HtmlUnit-dən Selenium kimi digər plaginlərə keçmək istəyirsə, testləri yenidən yazmağa ehtiyac yoxdur.
GO TO FULL VERSION