Още от концепцията за е въведена, много методологии за тестване са се развили, парадигмите са се променили, но изискванията по някакъв начин триумфират, за да останат постоянни. Една такава методология е ТестNG което ни помага да групираме тестовите случаи в различни раздели на кода с помощта на анотации. Но как работи? Нека разберем тази концепция чрез средата на тази статия за TestNG Анотации в .
Ще разгледам по-долу споменатите теми в тази статия:
- Въведение в TestNG
- Защо да използвам TestNG със селен?
- Анотации на TestNG в селен
- Създаване на тестови случаи с помощта на анотации на TestNG
Въведение в TestNG
ТестNG означава Тествайте следващото поколение и това е рамка за автоматизация на тестове с отворен код, вдъхновена от JUnit и NUnit. Добре, ТестNG е не само вдъхновена, но и надградена версия на тези две рамки. И така, какво е надстройката тук? Надграждането с TestNG е, че предоставя допълнителна функционалност като тестови анотации, групиране, приоритизиране, техники за параметризиране и последователност в кода, което не беше възможно по-рано.
Той не само управлява тестови случаи, но дори и подробни отчети за тестове могат да бъдат получени чрез използване на TestNG. Ще има подробно резюме, което ще покаже броя на неуспешните тестови случаи. Също така, грешките могат да бъдат локализирани точно и най-рано. След като вече знаете какво е TestNG, нека видим защо да използваме TestNG в Selenium.
Защо да използвам TestNG в селен?
Разработчиците на софтуер от цял свят единодушно ще се съгласят, че писането на код в тестови случаи спестява голяма част от времето за отстраняване на грешки. Защо? Това е така, защото тестовите случаи помагат за създаването на надежден код без грешки, като разбиват целия код на по-малки тестови случаи и след това, като оценявате всеки от тези тестови случаи за преминаване / неуспешно състояние, можете да създадете код без грешки. От не поддържа изпълнение на код в тестови случаи, TestNG се появява на снимката, което ще помогне при изпълнението на тестовите случаи.TestNG поддържа и следните функции:
- Той генерира отчета в подходящ формат, който включва брой изпълнени тестови случаи, брой неуспешни тестови случаи и тестови случаи, които са пропуснати.
- Множество тестови случаи могат да бъдат групирани по-лесно, като ги конвертирате във файл TestNG.xml. Тук можете да зададете приоритетите за изпълнение на тестовите случаи.
- Използвайки TestNG, можете да изпълнявате множество тестови случаи в множество браузъри, т.е. тестване на различни браузъри .
- Тестовата рамка може лесно да се интегрира с инструменти като Maven, Jenkins и др.
След като вече знаете какво е TestNG и защо се използва, нека преминем по-нататък и да знаем различните анотации, които TestNG поддържа в Selenium.
Анотации на TestNG
Анотациите на TestNG в селен се използват за управление на следващия метод, който трябва да се изпълни. Тестовите анотации се дефинират преди всеки метод в тестовия код. В случай, че някой метод не е с префикс с анотации, тогава този метод ще бъде игнориран и няма да бъде изпълнен като част от тестовия код. За да ги дефинират, методите трябва просто да бъдат отбелязани с „ @Тест ‘.
Видове анотации на TestNG:
По-долу е списъкът с пояснения, които TestNG поддържа в селен.
- @BeforeMethod: Метод с тази анотация ще бъде изпълнен преди всеки @тест анотиран метод.
- @AfterMethod: Това анотацията ще се изпълнява след всеки @тест анотиран метод.
- @BeforeClass: Тази анотация ще бъде изпълнена преди първо @ Тест изпълнение на метод. Изпълнява се само веднъж за клас.
- @AfterClass: T неговата анотация ще бъде изпълнена, след като всички тестови методи в текущия клас са изпълнени
- @BeforeTest: Метод с тази анотация ще бъде изпълнен преди първо @ Тест анотиран метод.
- @AfterTest: Метод с тази анотация ще бъде изпълнен, когато всичко @Тест анотираните методи завършват изпълнението на тези класове, които са вътре в tag TestNG.xml файл.
- @BeforeSuite: Тази анотация ще се изпълни само веднъж преди всички тестове в пакета са изпълнени
- @AfterSuite: Ще се стартира метод с тази анотация веднъж след това изпълнението на всички тестове в пакета е изпълнено
- @BeforeGroups: Този анотиран метод ще се изпълни преди първото пробно пускане от тази специфична група.
- @AfterGroups: Този анотиран метод ще се изпълни след всички методи за изпитване от тази група завършва изпълнението си.
Така че всичко е свързано с Анотации в TestNG. Сега нека да продължим по-нататък и да разберем как да напишем първи тестов случай, използвайки TestNG.
Създаване на тестови случаи с помощта на анотации на TestNG
Различните стъпки, свързани със създаването на тестови случаи с помощта на TestNG Annotation, са както следва:
- Създайте проект и добавете библиотеката TestNG.
- Създайте файл с клас и кодирайте програмата
- Накрая напишете XML файл и го изпълнете в TestNG Suite.
Ако искате да влезете в повече подробности за писането на тестов случай с помощта на TestNG, моля, проверете тази статия нататък Урок за TestNG . Сега нека да преминем по-нататък и да разберем как анотациите на TestNG ще ви помогнат да групирате тестовите случаи и да конфигурирате вашата програма.
купчина и стек памет в JavaТест 1:
В този тестов случай ще използвам три различни анотации и ще програмирам програмата. Нека разберем как да го направим с примера по-долу.
пакет co.edureka.pages import org.openqa.selenium.WebDriver import org.openqa.selenium.chrome.ChromeDriver import org.testng.Assert import org.testng.annotations.AfterTest import org.testng.annotations.BeforeTest import org.testng .annotations.Test публичен клас AnnotationExample {public String baseUrl = 'https://www.edureka.co/' String driverPath = 'C: //Users//Neha_Vaidya//Desktop//chromedriver_win32//chromedriver.exe' public WebDriver driver @BeforeTest public void launchBrowser () {System.out.println ('стартиране на браузър Chrome') System.setProperty ('webdriver.chrome.driver', driverPath) driver = new ChromeDriver () driver.get (baseUrl)} @Test public void verifyHomepageTitle () String ожидаемоTitle = 'Онлайн обучение под ръководството на инструктор с 24X7 поддръжка за цял живот @AfterTest публична празнина terminateBrowser () {driver.close ()}}
По принцип искам да проверя дали действителното заглавие на уеб страницата на Edureka съвпада с очакваното заглавие или не. И така, първо използвам „ @BeforeTest ’ Анотация и създаване на екземпляр на драйвер за браузър и навигиране през уебсайта на Edureka с помощта на driver.get () метод. Това са стъпките, които трябва да се извършат преди теста.
След това, по време на този тест, искам да проверя дали очакваното заглавие и действителното заглавие съвпадат или не. Ето защо посочвам всички стъпки с @Test Annotation. И накрая, искам да затворя драйвера и да прекратя браузъра след теста. Ето защо използвам @AfterTest Анотация и затваряне на драйвера. Така че аз така групирам целия код в различни анотации и изпълнявам тестовия случай. Нека стартираме програмата като TestNG Test и проверим резултата.
На моментната снимка можете да видите, че тестовият случай се изпълнява успешно на тест и пакет по подразбиране. Също така, тестовият случай е преминал и също няма грешка.
Сега нека видим още един пример за по-задълбочено разбиране на потока на изпълнение на различни пояснения. Много е необходимо да се знае потокът на изпълнение на анотациите. Така че, нека да разгледаме снимката по-долу, за да знаем за нея.
Потокът на изпълнение на поясненията ще бъде както е показано в горната снимка. Сега нека видим още един пример, за да разберем същото.
Тест 2:
пакет co.edureka.pages import org.testng.annotations.AfterClass import org.testng.annotations.AfterMethod import org.testng.annotations.AfterSuite import org.testng.annotations.AfterTest import org.testng.annotations.BeforeClass import org.testng .annotations.BeforeMethod import org.testng.annotations.BeforeSuite import org.testng.annotations.BeforeTest import org.testng.annotations.Test public class testngAnnotations {// Test Case 1 @Test public void testCase1 () {System.out.println ('Test Case 1')} // Тест Case 2 @Test public void testCase2 () {System.out.println ('Test Case 2')} @BeforeMethod public void beforeMethod () {System.out.println ('Before Метод ')} @AfterMethod public void afterMethod () {System.out.println (' After Method ')} @BeforeClass public void beforeClass () {System.out.println (' Before Class ')} @AfterClass public void afterClass ( ) {System.out.println ('След клас')} @BeforeTest публична празнота beforeTest () {System.out.println ('Преди тест')} @AfterTest публична празнота afterTest () {System.out.println ('След тест')} @BeforeSuite public void beforeSuite () {System.out.println ('Before Suite')} @AfterSuite public void afterSuite () {System.out.println ( „След апартамент“)}}
В горния код аз произволно пиша всички методи с анотации. Не спазвам последователността му. Но когато изпълня програмата, тя ще следва същия ред. Нека сега проверим изхода.
[RemoteTestNG] откри TestNG версия 6.14.2 Преди пакет преди тест преди клас преди метод тест случай 1 след метод преди метод тест случай 2 след метод след клас след тест PASSED: testCase1 PASSED: testCase2 =========== ==================================== Тест по подразбиране Тестове изпълнени: 2, неуспехи: 0, пропуски: 0 =================================================== След Suite = ================================================ Пакет по подразбиране Общо тестове изпълнение: 2, неуспехи: 0, пропуски: 0 ========================================= ========
От горния изход можете да забележите, че той е изпълнил както тестовите случаи, така и Before Suite и After Suite, изпълнени само веднъж. Също така, тестът се изпълни успешно на теста и пакета по подразбиране. Ето как трябва да изпълнявате тестовите случаи, използвайки Анотации.Така че това ни води до края на тази статия за TestNG анотации в селен.
Надявам се, че сте разбрали концепциите и това е добавило стойност към вашите знания. Сега, ако искате да получите повече прозрения за Селен, можете да разгледате статията на .
Ако сте намерили това „TestNG Annotations in Selenium ”Подходящо, вижте от Edureka, доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят.
pmi-acp си заслужава
Имате въпрос към нас? Моля, споменете го в раздела за коментари на Анотации на TestNG в селен статия и ние ще се свържем с вас.