Булак: Dev.to Java бирдигинин тестирлөө алHowтары иштеп чыгуучуларга тиркемелерди же башка программалык камсыздоону түзүү үчүн стандарттуу, татаал жана кеңейтилүүчү куралдар менен камсыз кылат. Алар алдын ала жазылган codeду камтыган көп сандагы an objectтерден турат. Сыноо негизин тандоого жараша, ал китепканаларды, компиляторлорду, куралдарды жана API'лерди камтыйт. Java бирдигин тестирлөө алHowтары колдонмо үчүн бекем коопсуздукту башкарууну камсыз кылат. Эгер коопсуздуктун кемчorги табылса, аны алHowтын веб-сайтында/колдоосунда оңдоого болот. АлHow түзүүчүлөр программисттердин жана сыноочулардын эффективдүүлүгүн жана ылдамдыгын жогорулатуучу орнотулган функцияларды жана модулдарды сунушташат. Бул он жылдыкта платформаларды сыноодон эмнени күтүүгө болот? Биз сиздердин назарыңыздарга 2020-жылга карата эң мыкты Java тестирлөө алHowтарынын тизмесин сунуштайбыз.
1. JBehave
JBehave BDD (Жүрүм-турумга негизделген өнүктүрүү) колдоосу менен эң мыкты Java тестирлөө алHowтарынын бири. BDD TDD (Test-Driven Development) жана ATDD (Acceptance Test-Driven Development) эволюциялык уландысы болуп саналат. 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
- JBehave'тин тестирлөө системасы ойлонулган деталдардын жана колдонуунун интуитивдик жеңилдигинин аркасында жогору турат.
- JBehave BDD үчүн сонун иш кылат, ар кандай долбоорлордо иштеген, бирок окшош мүнөздөмөлөргө ээ болгон өзүнчө өнүктүрүү топторунун ортосунда интеграцияны сунуш кылат.
- JBehave алкагы иштеп чыгуучулар үчүн абдан пайдалуу болгон жарым расмий тилди колдонот. Домен лексикасы команда түзүмүндө ырааттуулукту камсыз кылат.
- Кызыкдар тараптар, ошондой эле долбоордун менеджерлери спецификациялар бирдей форматка ылайык келгендиктен, тесттик топтордун жана өнүктүрүү тобунун ишинин ачыктыгына ээ болушат.
2. JUnit
JUnit бул ачык булактуу регрессиялык тестирлөө негизи, аны биринчи кезекте тажрыйбалуу иштеп чыгуучулар бирдикти тестирлөө, программалоону тездетүү жана Java codeунун сапатын жакшыртуу үчүн колдонушат. Бул куралды колдонуунун негизги максаты - Java иштеп чыгуучуларына кайталануучу сыноо учурларын скрипт жана ишке ашырууга мүмкүнчүлүк берүү. Бул Java-да эң көп колдонулган тестирлөө алHowтарынын бири. Көбүнчө JUnit codeдун кичинекей бөлүктөрүн сыноо үчүн колдонулат. Аны Selenium WebDriver менен JUnit менен айкалыштыруу аркылуу автоматташтырылган веб-сайт тесттерин аткаруу үчүн да колдонсо болот. Кандайдыр бир жаңы codeду кошкондо, тестирлөөчүдөн толук сыноо учурларын кайра жүктөө жана эч кандай тыныгуулар болбошу үчүн суралат. JUnit өзгөчөлүктөрү:- Сыноо топтому;
- Объекттердин жалпы топтомун колдонуу;
- JUnit класстары;
- Test Runners.
- Компьютериңизде JDKнын эң акыркы versionсы болсун.
- (Милдеттүү эмес) $JUNIT_HOME/src. jar файлы.
- Объектке багытталган тилде, эң жакшысы Java тилде тиркемелерди иштеп чыгуу көндүмдөрү жана тажрыйбасы.
- JUnitтин жаңы versionсын жүктөп алып, алHowты конфигурациялаңыз.
- JUnit Java 8 функцияларын колдогондуктан, аны интеграциялоо жана бирдик сыноолору үчүн колдонсо болот.
- АлHow каталарды алгачкы этапта аныктоону жеңилдетет, натыйжада дени сак жана ишенимдүү code пайда болот.
- JUnit менен иштеген программисттер аны абдан пайдалуу деп эсептешет. Бул codeду окууну жана кемчorктерди текшерүүнү жеңилдетет.
- JUnit катасыз жана жакшыраак окулуучу codeду түзүүгө мүмкүндүк берет.
- Eclipse, NetBeans, Maven, Ant жана IntelliJ IDEA сыяктуу дээрлик бардык негизги IDE менен шайкеш келет. Ошентип, сиз бул IDEлерден түз эле бирдик тесттерин оңой жазып, иштете аласыз.
- JUnitтин жаңыртылган versionсын (5-version) колдонуу менен, сиз өзгөчө жагдайды оңой аныктай аласыз.
- Бирдикти тестирлөө негизи Java 5 же башка versionлары менен колдонулушу мүмкүн.
3. Тынчтык
Serenity , мурда Thucydides катары белгилүү, эң кеңири колдонулган ачык булак Java тестирлөө алHowтарынын бири. Serenity BDD алкагы так, структураланган жана башкарылуучу тестирлөө критерийлерин түзүүгө жардам берет. Бул Selenium WebDriver жана JUnit функцияларын кеңейтет. Бул адистештирилген платформа менен сиз сүрөттөмө тестирлөө отчетторун түзө аласыз. Кошумчалай кетсек, сиз автоматташтырылган тестирлөөнү өз муктаждыктарыңызга дал келтире аласыз. Жалпысынан алганда, бул негиз Java иштеп чыгууну ишенимдүү жана натыйжалуу кылат. Тынчтыктын өзгөчөлүктөрү:- Ачык булак долбоору;
- Сыноо жана ишке ашыруунун натыйжалары боюнча толук отчеттор;
- Ар бир сыноо үчүн бизнес формат отчету.
- JDK 5 же андан кийинки.
- Maven 3.0 же андан кийинкиси.
- IDE (көбүнчө Eclipse).
- АлHow сыноочуга REST кызматтары үчүн сыноо учурларын түзүүгө жардам берет.
- Тесттик иштин сүрөттөлүшү менен түшүнүгүнүн, ошондой эле аны ишке ашырууга болгон мамиленин ортосундагы тең салмактуулукту сактайт.
- Колдонуучуларга өздөрүнүн автоматташтырылган инфраструктурасын тейлөөгө же түзүүгө кошумча убакыт коротуунун кереги жок.
- Serenity ар кандай өнүктүрүү алHowтары менен интеграцияланышы мүмкүн, мисалы Spring жана Selenium, JBehave сыяктуу тестирлөө алHowтары, ошондой эле JIRA сыяктуу долбоорду башкаруу куралдары.
4.TestNG
TestNG интеграциялоо, функциялык жана бирдик тестирлөө үчүн колдонулган эң популярдуу Java тестирлөө алHowтарынын бири. Ал 2004-жылы Седрик Бейст тарабынан түзүлгөн жана азыр 7-versionга жаңыртылган. Ал JUnit алкагынын негизги атаандашы болуп саналат. TestNG JUnitге окшош, бирок кээ бир annotationлары жана Junit тарабынан колдоого алынбаган функциялары бар. TestNG программалык камсыздоону тестирлөөнүн дээрлик бардык түрлөрүндө колдонулушу мүмкүн, анын ичинде акырына чейин, бирдикте, интеграциялоодо жана функционалдуу. TestNG жана JUnit экөө тең Java негизиндеги алHowтар, алар сизге тесттерди жазууга жана жыйынтыкты текшерүүгө мүмкүндүк берет. Эгер тест ийгorктүү өткөн болсо, анда жашыл тилкени көрөсүз, антпесе кызыл тилкени көрөсүз. TestNG өзгөчөлүктөрү:- Көз каранды ыкмаларды сыноону колдойт;
- ийкемдүү тест конфигурациясы;
- Туруктуу аткаруу моделин колдойт;
- Кошумча ийкемдүүлүк үчүн BeanShellде орнотулган.
- Акыркы JDK versionсы;
- Eclipse акыркы versionсы;
- Java программалоо тorн же башка an objectиге багытталган программалоо тorн түшүнүү жана практикалык тажрыйбасы.
- Бир нече code фрагменттеринин параллелдүү тестирлөөсүн түзүүгө жана иштетүүгө мүмкүндүк берет.
- Сыноо ишин ишке ашырууда сиз HTML форматында отчет түзө аласыз.
- Тесттерди оңой эле уюштурууга жана артыкчылыктарга ылайык топтоого болот. Тышкы же маалымат базасын тестирлөө үчүн негизди орнотуу менен тесттерди жүргүзүү оңой.
- Приоритеттерди дайындарды параметрлештирүү жана annotationларды колдонуу менен оңой коюуга болот.
5.Selenide
Selenide Selenium WebDriver тарабынан иштетилген популярдуу ачык булак Java тестирлөө негизи. Бул Java тиркемеси үчүн так, коммуникативдик жана туруктуу UI тесттерин жазуу үчүн эң сонун курал. Бул WebDriver жана JUnit функцияларын кеңейтет. WebDriver - биздин сүйүктүү UI тестирлөө куралдарыбыздын бири, бирок анда күтүү мүмкүнчүлүктөрү жок. Мисалы, Ajax сыяктуу веб-технологияларды сыноо. Селениддик алHow бул көйгөйлөрдүн баарын оңой чечет. Андан тышкары, орнотуу жана үйрөнүү оңой. Сиз жөн гана логикага басым жасашыңыз керек, калганын Селенид жасайт. Selenide өзгөчөлүктөрү:- татаал орнотууну талап кылbyte;
- Кодду көп жазууну талап кылbyte;
- көп убакытты үнөмдөйт;
- Дженкинс сыяктуу CI куралы үчүн идеалдуу конфигурация.
- JDK 5 же андан жаңы;
- Maven 3.0 же башка versionлары;
- Интегралдык өнүктүрүү чөйрөсү (IDE) куралы. Көбүнчө, бардык иштеп чыгуучулар Eclipseди жактырышат, анткени Eclipse жана Maven айкалышы менен иштөө оңой.
- Selenide тесттериңизди так жана туруктуу кылып, (дээрлик) бардык Ajax / убакыт маселелерин чечет.
- Сыноо иштерин жазуу процессин кыскартуу.
- AngularJS аркылуу иштелип чыккан тиркемелерди сыноо үчүн колдоо.
- Мурда башка Selenium куралдары тарабынан колдонулган буйруктардын санын азайтат.
6. ченегич
Selenium Thoughtworks түзүүчүлөрү веб-тиркемелерде автоматташтырылган тесттерди жүргүзүү үчүн дагы бир Java тестирлөө негизин чыгарышты. Gauge бул Java үчүн акысыз жана ачык булактуу тестирлөөнүн автоматташтырылган негизи, ал азыраак code менен кабыл алуу сынагынын жүгүн азайтат. Бул мобилдик веб-сайттарды сыноо үчүн технологиялык стек категориясында эң көп колдонулган Java тестирлөө алHowтарынын бири. Бул негизди колдонгон автоматташтырылган тесттер тилге карабастан окууга оңой тесттерди түзө алат. Selenium сыяктуу эле, бул тестирлөө системасы Ruby, JavaScript, Java, C# жана Python сыяктуу бир нече программалоо тилдерин колдойт. Өлчөмдүн өзгөчөлүктөрү:- Колдонууга оңой, ийкемдүү синтаксис;
- Ишкердик тилди колдонот;
- бир нече тилдерди жана платформаларды колдойт;
- Көптөгөн плагиндер.
- Maven жүктөп алуу жана орнотуу ;
- Иштетүү системасы Microsoft Windows 10 же андан жогору;
- Эстутум - 512 МБ RAM (минималдуу);
- Gauge плагини сиздин интеграцияланган иштеп чыгуу чөйрөңүз (IDE) менен конфигурацияланышы керек же CMD/Терминалдан тестти иштетип жатсаңыз, Gauge алкагы орнотулушу керек.
- Скрипттерди окула турган жана түшүнүктүү кылат.
- Колдонууга оңой, ийкемдүү синтаксис жана тилдердин бардык түрлөрүн (Java, Javascript, C#, Ruby, Python ж.б.) жана платформаларды колдоо.
- Сиз тандаган интеграцияланган иштеп чыгуу чөйрөсүндө (IDE) тесттерди түзүүгө мүмкүндүк берет (IntelliJ, Vi VS Code, Visual Studio, Maven, Gradle, Eclipse ж.б.).
- Параллелдүү тестирлөө жүргүзөт жана ыңгайлаштырылган отчетторду түзөт.
- Жогорку тактыкты жана окулууну сактоо менен чоң маалымат топтомдорун оңой сынайт.
- Gauge - бул жаңы алHow, ошондуктан колдонуучулар ал жөнүндө көп бorшпейт.
- Gauge IntelliJ ичиндеги спецификацияларды коопсуз параллелдүү ишке ашырууну колдобойт, анткени драйвер статикалык жана скрипттер менен бирге колдонулушу керек.
7. Геб
Geb Selenium WebDriver үстүнө курулган серепчи тестирлөө негизи болуп саналат. Бул аны автоматташтырылган тесттер үчүн идеалдуу кылат жана сиз WebDriver тарабынан колдоого алынган бардык браузерлерде кайчылаш браузер тесттерин оңой аткара аласыз. Geb алдыңкы маалыматтарды талдоо, веб тестирлөө жана башка көптөгөн нерселер үчүн өзгөчө мүмкүнчүлүктөрдү камсыз кылат. Аны өзгөчө кылган нерсе, анын HTML барактарына суроо берүү жолу жана jQuery сыяктуу синтаксис чыгаруу. Geb платформасы ошондой эле Page Object Model үчүн жергorктүү колдоону сунуш кылат . Geb жалпы кыруу, скрипт, ошондой эле автоматташтыруу үчүн колдонулушу мүмкүн. Бул TestNG, JUnit жана Spock сыяктуу тестирлөө алHowтары менен интеграциялоонун аркасында кабыл алуу тести, веб тестирлөө же функционалдык тестирлөө үчүн чечим катары бирдей ылайыктуу. Geb өзгөчөлүктөрү:- Толук jQuery синтаксисин колдоо;
- Apache License 2.0;
- WebDriver шайкеш;
- Барак an objectисин моделдөөнүн туруктуулугу;
- Жагымдуу артикуляция.
- Сиз Maven жүктөп алып, орнотуу керек ;
- Java 8 же андан кийинкисинин болушу ;
- LambdaTest аныктыгын текшерүү жана тастыктоо грамоталары;
- Geb тестти автоматташтыруу алкагы үчүн GitHubдагы LambdaTest репозиторийинин көчүрмөсү .
- Page Objects формасы жана Geb's Groovy DSL тесттерди окууну жеңилдетет, анткени алар англис тorне аздыр-көптүр окшош.
- Сыноолорду жогорку ылдамдыкта жүргүзөт жана тестирлөө чыгымдарыңызды үнөмдөйт. Internet Explorer, HTMLUnit, Firefox жана Chrome сыяктуу ар кандай браузерлер менен шайкеш келет.
- Сыноолорду реалдуу убакытта жана реалдуу чөйрөдө аткарат — колдонуучу байкагандай. Бир скрипттин ичиндеги тесттердин максималдуу натыйжалуулугун камсыз кылат.
- Регрессиялык тестирлөөнү көйгөйсүз жүргүзүүгө мүмкүндүк берет. Сиз Geb сыноо учурларын иштетип, тиркемеде өзгөртүү же оңдоодон кийин кандайдыр бир активдүү функциянын бузулганын текшерүүгө болот.
- Gebтин кемчorги - ал WebDriverди Groovy тorнде колдонот. Ошондуктан, Webdriverди колдонууда ошол тил гана колдоого алынат. Бирок, эгер сиз WebDriverди түз колдонууга аракет кылсаңыз, ал Java, Ruby, C# жана Python сыяктуу башка тилдерди колдойт.
- Geb чакан долбоорлорго ылайыктуу эмес, бирок чоң тапшырмалар үчүн жакшы иштейт. Эгерде сиздин веб-тиркемеңизде маалыматтар агып турушу керек болгон баракчалар жана формалар жок болсо, анын түзүлүшү ыңгайсыз сезorши мүмкүн.
8.Spock
Spock Java үчүн популярдуу сыноо автоматташтыруу негизи болуп саналат. Ал Groovy тorнде жазылган жана тестирлөөчүлөргө Java виртуалдык машинасында маалыматтарга негизделген тесттерди жүргүзүүгө мүмкүндүк берет. Spock JVM колдогон көптөгөн тилдер менен мыкты шайкештикти камсыз кылат. Споктун өзгөчөлүктөрүнүн бири - codeдук documentтер жана codeдун окулушу уюшкандыкта жана тыкан, ошондой эле жөнөкөй англисче сүйлөмдөрдү чечмелей алат. Ал көп учурда программалык камсыздоону иштеп чыгуучулар тарабынан Java'да корпоративдик тиркемелерди түзүү үчүн колдонулат. Ушул себептерден улам, Spock 2020-жылы эң популярдуу жана колдонуучуга ыңгайлуу Java тестирлөө негизи болуп калды. Spock өзгөчөлүктөрү:- Де-факто, бул JUnit Java алкагынын кеңейтилген versionсы;
- жасалма an objectтерди колдоо;
- Тесттерди каалаган тилде жазса болот.
- Акыркы JDK versionсы;
- Eclipseтин жаңыланган versionсы;
- Java программалоо тorн билүү.
- Башка Java автоматташтырылган тестирлөө алHowтарына салыштырмалуу англис тorндеги жөнөкөй сүйлөмдөр менен шайкеш келүүнү камсыз кылуу, укмуштуудай окулуу.
- Спок менен шылдыңдоо жана шылдыңдоо болуп көрбөгөндөй жеңил жана оорутпайт. Мындан тышкары, алар алкагында курулган.
- Ачык жана кыскараак параметрлештирүү.
- Айланадагы контекстти сактап, катанын себебин табууга жардам берет.
- Жөнөкөйлөштүрүлгөн жана коммуникативдик домендин өзгөчө тor (DSL).
- Ал Groovy тorнде жазылган, андыктан сиз Groovy боюнча негизги бorмге ээ болушуңуз керек.
- Сиз Spock алHowтарын бир аз ыңгайсыз деп табышыңыз мүмкүн, бирок аны менен таанышкандан кийин, башка Java тестирлөө алHowтарына өтүү жөнүндө ойлонбойсуз.
9. HttpUnit
HttpUnit кеңири колдонулган ачык булак тестирлөө негизи. Ал эч кандай браузердин талаптары жок веб-сайттарды сынап көрүүгө мүмкүндүк берет. HttpUnit веб тиркемелери үчүн автоматташтырылган тестирлөө скрипттерин иштетүү үчүн эң сонун. Аты айтып тургандай, HttpUnit бирдик тесттер үчүн колдонулушу мүмкүн. Бирок, сервлеттер, JSP (JavaServer Барактары) жана башка шаблон элементтери сыяктуу жалпы веб-деңгээл элементтери бирдик сыноолоруна ылайыктуу эмес. Java тorнде жазылган, алHow кайтарылган беттерде, XML DOM, текст, table контейнерлери, шилтемелер жана формалар боюнча сыноолорду жүргүзүүгө мүмкүндүк берет. HttpUnit өзгөчөлүктөрү:- Cookie колдоо;
- HTTPS жана HTTP протоколдорун колдойт;
- HTML жооп колдоо;
- Прокси serverди колдоо;
- Мыкты JavaScript колдоосу.
- Система Java JDK 1.4 же эң акыркы versionсын колдоого алышы керек.
- HttpUnit менен интеграцияланган Tidy.jar жана httpunit.ja файлдарын класс жолуңузга кошуңуз; Ошондой эле XML талдоочу алдын ала орнотулганын текшериңиз.
- Эгер сиз Javaнын эски versionсын колдонуп жатсаңыз, класс жолуңузга JAXP-шайкеш XML талдоочусун камтышыңыз керек.
- HttpUnitтин эң акыркы versionсы ушул бетте жеткorктүү .
- Веб тиркемелерин текшерүүнү автоматташтырууга мүмкүндүк берет жана регрессиялык тестирлөөгө жардам берет.
- HTTPUnitтин артыкчылыктарынын бири - ал Selenium сыяктуу башка тестирлөө автоматташтырылган алHowтарга караганда бир топ ылдамыраак.
- Ыңгайлаштырылган браузердин (IE же Firefox) ишин имитациялоого мүмкүндүк берген эң сонун JavaScript колдоосу.
- HTTPUnit өзүнүн негизги тor катары Rhino JavaScript кыймылдаткычын колдонот жана браузерди ишке ашыруу үчүн an objectтин аткарылышын камсыз кылат.
- Популярдуу JavaScript китепканаларынан алынган бирдик тесттери HtmlUnitтин ушул бирдик сыноолорунун негизинде бирдик тесттерине бириктирилген. jQuery 1.11.3, MochiKit 1.4.1, MooTools 1.2.1 ж.б. китепканаларды колдойт, HtmlUnit менен сонун иштейт.
- HtmlPage.executeJavascript (String yourJsCode) аркылуу учурдагы баракка codeду киргизүү мүмкүнчүлүгү.
- Бул жөнөкөй тесттерди жүргүзүү үчүн жакшы вариант, бирок татаал тесттерди түзүү көбүрөөк codeду талап кылат.
- Selenium сыяктуу алHow тагыраак болуп, текшерorп жаткан тиркемелерди чектебеген браузерге багытталган жүрүм-турумга мүмкүндүк берет. HttpUnit алкагы менен сиз кээ бир негизги браузерлерден башка чектелген колдоо аласыз.
10. JWebUnit
JWebUnit Java негизиндеги тестирлөө негизи , ал JUnitтин кеңейтorши болуп саналат. Ал интеграция, регрессия жана функционалдык тестирлөө үчүн колдонулат. JWebUnit HTMLUnit жана Selenium сыяктуу учурдагы активдүү алHowтарды жөнөкөй тестирлөө интерфейси менен айкалыштырат. Ушундай жол менен сиз веб-тиркемелериңиздин тактыгын дароо текшере аласыз. JWebUnit экран багыттоо сыноолорду аткаруу үчүн колдонулушу мүмкүн. Платформа ошондой эле колдонмонун тактыгын текшерүү үчүн веб-тиркемеде навигациялоо үчүн Java колдонмо программалоо интерфейсин сунуштайт. Бул шилтемени навигациялоону, форманы киргизүүнү жана тапшырууну, tableнын мазмунун актоону жана бизнес тиркемелеринин башка жалпы өзгөчөлүктөрүн эске алат. JWebUnit өзгөчөлүктөрү:- Веб тиркемесинде навигациялоо үчүн жогорку деңгээлдеги Java API.
- Ачык булак Java негизиндеги алHow.
- Сиз Maven орнотуу керек.
- JWebUnitтин учурдагы туруктуу versionсы 3.3. Java 1.7 талап кылынат.
- Сизге керектүү плагинди кошуңуз: Тезирээк тесттер жана Javascript менен Webdriver үчүн эң сонун колдоо үчүн HtmlUnit: BETA сапаты.
- Maven 2ди колдонууда Eclipseдеги көз карандылыктарды башкаруу үчүн, m2e плагинин колдонуңуз.
- Экрандагы навигацияны текшерүү үчүн колдонулат.
- Веб колдонмолорун чабыттоо үчүн жогорку деңгээлдеги API менен камсыз кылат.
- Жеткorктүү ырастоолор менен жөнөкөй навигация JUnit же HtmlUnit колдонууга караганда тезирээк тесттерди түзүүгө мүмкүндүк берет.
- Эгер кимдир бирөө HtmlUnitтен Selenium сыяктуу плагиндердин башка түрлөрүнө өтүүнү кааласа, тесттерди кайра жазуунун кереги жок.
GO TO FULL VERSION