learn how use testng annotations selenium
Као што већина вас зна, ТестНГ је аутоматизација оквир који се широко користи у селену . За све тестере је важно да разумеју напомене коришћене током рада са ТестНГ-ом.
Поједностављено, ТестНГ напомене су редови кода који се убацују у програм / пословну логику како би се контролисало како се покрећу доленаведене методе.
У овом чланку ћу се усредсредити на важност различитих врста напомена и њихове употребе.
У наставку сам поделио поставке коришћене за мој пројекат. Ово не мора нужно да се поштује за ваш пројекат.
Напомене се разликују у зависности од захтева вашег пројекта. Међутим, ток извршења биће исти.
Предуслови:
- Инсталирајте ТестНГ у Ецлипсе. Проверавати ово упутство о водичу за инсталацију .
- ЈДК - Јава Девелопмент Кит
- Биљешке се могу користити само са верзијом Јава 1.5 или новијом
Пре писања тест скрипти или постављања пројекта, требали бисмо знати хијерархију у којој напомене раде. Извршење ће увек остати исто.
На пример, компајлирајте и покрените доњу скрипту и приметите редослед извршења. Биће следеће:
- БефореСуите
- БефореТест
- Пре наставе
- БефореМетход
- Тест случај 1
- АфтерМетход
- БефореМетход
- Тест случај 2
- АфтерМетход
- После часа
- АфтерТест
- АфтерСуите
Пример:
public class test { @BeforeMethod public void beforeMethod() { System.out.println(' Before Method will execute before every test method'); } @AfterMethod public void afterMethod() { System.out.println('After Method will execute after every test method '); } @BeforeClass public void beforeClass() { System.out.println('Before Class will always execute prior to Before Method and Test Method '); } @AfterClass public void afterClass() { System.out.println('After Class will always execute later to After Method and Test method'); } @BeforeTest public void beforeTest() { System.out.println('Before Test will always execute prior to Before Class, ,Before Method and Test Method '); } @AfterTest public void afterTest() { System.out.println('After Test will always execute later to After Method, After Class '); } @BeforeSuite public void beforeSuite() { System.out.println(“Before Suite will always execute prior to all annotations or tests in the suite.'); } @AfterSuite public void afterSuite() { System.out.println('After suite will always execute at last when all the annotations or test in the suite have run.'); } @Test public void testCase1() { System.out.println('This is my First Test Case 1'); } @Test public void testCase2() { System.out.println('This is my Second Test Case 2'); } }
Процес скрипте за тестирање можемо разбити на следеће кораке:
- Напишите пословну логику теста и уметните горе ТестНГ напомене у вашем коду
- Додајте информације о свом тесту (нпр. Назив класе, групе, методе које желите да покренете итд.) У а тестнг.кмл датотека.
- Покрените ТестНГ
Али питање и даље остаје - које информације треба да пружимо у горе наведеним напоменама?
Погледајте важне кораке које можемо постићи користећи горње напомене:
# 1) @Тест
Ово је главни део наше скрипте за аутоматизацију где ћемо написати пословну логику, ствари које желимо аутоматизовати. Атрибуте можемо проследити нашој тест методи.
Испод су листе атрибута које можемо проследити нашој тест методи:
- алваисРун : Ово се користи када желимо да осигурамо да се метода увек изводи, чак и ако параметри од којих метода зависи не успеју. Ако је постављено на Тачно, ова метода испитивања ће се увек покретати. На пример: @Тест (алваисРун = труе)
- датаПровидер : ТестНГ датаПровидер се користи за пружање било каквих података за параметризацију. На пример. @Тест (датаПровидер = „Здраво“).
- датаПровидерЦласс : Ово је класа одакле преносимо податке добављачу података. У нашем случају назив класе датаПровидер је „Здраво“.
- зависиОнГроупс : То је листа група од којих зависи овај метод. На пример: @Тест (групе = {„Град“, „Држава“})
- зависиОнМетходс: Ова наредба се користи за извршавање методе засноване на њеној зависној методи. На пример: @Тест (депендОнМетходс = {„ОпенБровсер“, „база података је подигнута“})
- Опис : То је опис методе. На пример: @Тест (опис = „метода испитивања“)
- инвоцатионЦоунт : Односи се на број позива метода. То ће радити као петља. На пример: @Тест (инвоцатионЦоунт = 7) . Стога ће се овај метод извршити 7 пута.
- инвоцатионТимеОут : Ово се односи на максималан број милисекунди које би метода требала да заврши да би се завршила сва инвоцатионЦоунт. Овај атрибут ће се занемарити ако инвоцатионЦоунт није наведен. На пример: @Тест (инвоцатионЦоунт = 7, инвоцатионТимеОут = 30)
- приоритет : Ова наредба поставља приоритет методе испитивања. Прво ће бити заказани нижи приоритети. На пример: @Тест (приоритет = 1)
#два)@БефореСуите и @АфтерСуите
У @БефореСуите анотирани метод, можете подесити и покренути селен возачи и у @АфтерСуите анотираном методом, можете зауставити селенске управљачке програме
Пример :
public class TestSuiteSetup () { @BeforeSuite(alwaysRun = true) public void setupSuite() { WebDriver driver = new FirefoxDriver(); } @AfterSuite(alwaysRun = true) public void tearDown() { driver().close(); } }
# 3)@БефореЦласс и @АфтерЦласс
У @Пре наставе анотирани метод, можете да подесите својства фирефок-а, иницијализујете управљачки програм и тако даље и унутра @После часа анотираном методом, можете зауставити возача
Пример :
@BeforeClass(description = 'Set capabilities for your Firefox browser and set time it should wait for a page to load.') public static void firefoxSetUp() throws MalformedURLException { DesiredCapabilities capability = DesiredCapabilities.firefox(); driver = new FirefoxDriver(capability); driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); driver.manage().window().setSize(new Dimension(1920, 1080)); } @AfterClass(description = 'close your firefox driver') public void afterclass(){ driver.close(); }
# 4)@БефореМетход и @АфтерМетход
У @БефореМетход анотирани метод, можете проверити везу са базом података пре извршавања методе тестирања и у @АфтерМетход анотирани метод, можете да затворите везу са базом података
Пример :
@BeforeMethod(description='connect to database') public void beforemethod() throws SQLException{ //check database connection is up String databaseurl = 'jdbc:oracle://192.168.1.258/myDB'; DriverManager.getConnection(databaseurl, 'username', 'password'); }
@AfterMethod(description='close database connection') public void aftermethod() throws SQLException{ //check database connection is closed String databaseurl = 'jdbc:oracle://192.168.1.258/myDB'; Connection connect = DriverManager.getConnection(databaseurl, 'username', 'password'); if(connect!=null) connect.close(); }
# 5)@БефореТест и @АфтерТест
У @БефорТест методу, можете да подесите преференције за Фирефок профил и ин @АфтерТест методом можете ставити неки код који ће генерисати резултат теста и послати га заинтересованим странама
Пример :
@BeforeTest (description='set your firefox profile preferences according to your project requirement') public void single_run(){ FirefoxProfile firefoxProfile = new FirefoxProfile(); firefoxProfile.setPreference ('browser.download.folderList',2); firefoxProfile.setPreference ('browser.download.manager.showWhenStarting',false); firefoxProfile.setPreference ('browser.download.dir','E:\reports\'); firefoxProfile.setPreference ('browser.helperApps.neverAsk.saveToDisk','csv'); driver = new FirefoxDriver(firefoxProfile); String baseUrl = 'www.gmail.com'; } @AfterTest (description='') public void teardown(){ //a code which will send the test details report }
Најважнији аспект који овде треба напоменути током рада са напоменама је да ваш систем треба да буде опремљен верзијом Јава 1.5 или новијом, у супротном Ецлипсе може показати грешку да напомене нису подржане у вашем систему.
Сада размотрите случај када ваш систем има исправну верзију Јаве која је потребна за напомене, али грешка се и даље појављује.
Нешто као испод:
Синтаксна грешка, напомене су доступне само ако је ниво извора 1,5 или већи.
Шта ћеш сада? Постоје три могућности да се исправи ова ситуација.
Идемо редом кроз то:
Опција 1:
- Идите на Ецлипсе и кликните десним тастером миша на свој пројекат
- Изаберите Својства
- Кликните на Јава Цомпилер
- Уверите се да је ниво усклађености вашег компајлера 1,5 или већи
- Сачувајте подешавања и ваш проблем је решен
2. опција:
- Идите на картицу Прозор у Ецлипсе
- Изаберите Преференцес
- Кликните на Јаву, а затим на Компајлер
- Уверите се да је ниво усклађености вашег компајлера 1,5 или већи
- Сачувајте подешавања и ваш проблем је решен
Опција # 3:
Проверите свој Јава почетни пут постављањем исправне променљиве путање Јава окружења.
Закључак:
Кроз овај чланак покушали смо да разговарамо о неким важним напоменама и атрибутима које тестери често користе. Међутим, у ТестНГ има више напомена које се не користе често, као што је @АфтерГроупс, @БефореГроупс и тако даље који се користе када радите са групама у скрипти за тест пројекта.
Дакле, користите горње напомене према вашим захтевима. Увек је препоручљиво да не радите подешавање вашег пројекта методом тестирања. У методу испитивања напишите основну пословну логику која ће се тестирати.
тест случајеви за веб апликацију у ручном тестирању
Уверите се да је ваш систем опремљен верзијом Јава 1.5 или новијом, у супротном Ецлипсе може приказати грешку да ваш систем не подржава напомене.
Надам се да ће вам овај чланак помоћи у ТестНГ напоменама. Обавестите нас у случају било каквих коментара или питања.
Препоручено читање
- Како се користи ТестНГ Фрамеворк за креирање скрипта за селен - ТестНГ Селениум Туториал # 12
- Водич за текст помоћу примера у тексту за проналажење селена
- 30+ најбољих водича за селен: научите селен на стварним примерима
- Водич за краставац селенијум: Интеграција Јава Селениум ВебДривер краставца
- Увод у Селениум ВебДривер - Водич за селен бр. 8
- Ефикасни сценарији за скриптирање и решавање проблема са селенијем - Водич за селениј # 27
- Отклањање грешака у скриптама селена помоћу дневника (Водич за Лог4ј) - Водич за селен # 26
- Питхон ДатеТиме Водич са примерима