Селен с краставица (BDD Framework): Урок с пример

Съдържание:

Anonim

В този урок ще научите как да интегрирате Cucumber с Selenium Webdriver.

Какво представлява краставицата?

Краставицата е подход за тестване, който подкрепя поведенческо развитие (BDD). Той обяснява поведението на приложението в прост английски текст, използващ език Корнишън.

Научете повече на - https://www.guru99.com/cucumber-tutorials.html

Какво е селен?

Селенът е инструмент за автоматизация за функционално тестване на уеб-базираното приложение. Селенът поддържа различен език като java, ruby, python C # и др.

Научете повече на - https://www.guru99.com/selenium-tutorial.html

В този урок за краставици ще научим -

  • Защо да използвам краставица със селен?
  • Предпоставка за използване на краставица със селен.
  • Тестване за автоматизация с използване на краставица със селен.
  • Сценарий 1: Отпечатайте текст в конзолата.
  • Сценарий 2: Въведете идентификационни данни за вход и нулирайте стойността.
  • Сценарий 3: Въведете идентификационни данни за вход в Guru99 и нулирайте стойността. Направете това за 3 групи данни.

Защо да използвам краставица със селен?

Краставицата и селенът са две популярни технологии.

Повечето организации използват селен за функционално тестване. Тези организации, които използват Селен, искат да интегрират Селен с Краставица, тъй като Краставицата улеснява четенето и разбирането на потока на приложенията.

Инструментът за краставици се основава на рамката за развитие на поведението, която действа като мост между следните хора:

  1. Софтуерен инженер и бизнес анализатор.
  2. Ръчен тестер и тестер за автоматизация.
  3. Ръчен тестер и разработчици.

Рамката за краставици BDD също е от полза за клиента да разбере кода на приложението, тъй като използва езика корнишън, който е в обикновен текст. Всеки в организацията може да разбере поведението на софтуера. Синтаксисът на корнишона е в прост текст, който е четлив и разбираем.

Предпоставка за използване на краставица със селен

Преди да започнем интеграцията на семена от краставици, са ни необходими следните елементи:

  • Файлове от селен буркан:
  • Селен-сървър-самостоятелен

Може да се изтегли от http://www.seleniumhq.org/download/

Файлове за бурканчета за краставица:

  • Краставица-сърцевина
  • Краставица-html
  • покритие на кобертурния код
  • Краставица-ява
  • Краставица-джунит
  • Краставица-jvm-deps
  • Краставица-отчитане
  • Хемкрест-сърцевина
  • Корнишон
  • Джунит

Може да се изтегли от https://mvnrepository.com/search?q=Cucumber

Трябва да търсите файлове и да ги изтегляте един по един поотделно.

Например, ще ви покажем да изтеглите един от файловете на jar, т.е. „Ядро от краставица“.

Кликнете върху горната връзка за изтегляне. Той пренасочва към сайта по-долу. Сега потърсете конкретния буркан, т.е. „Ядро на краставица“, както е показано на екрана по-долу:

На следващата страница щракнете върху версия 1.2.2,

На следващия екран щракнете върху изтегляне, за да получите файла „Ядро на краставица“.

Забележка : За ваше улеснение сме събрали тук файловете на jar, необходими за изтегляне от Maven. С течение на времето тези буркани може да се актуализират и да станат несъвместими. От вас се изисква да ги изтеглите по метода, илюстриран по-горе.

Тестване за автоматизация с използване на краставица със селен.

Нека да проучим стъпки за използване на краставица със селен стъпка по стъпка. Тук ще разгледаме 3 сценария:

  • Сценарий 1: Отпечатайте текст в конзолата.
  • Сценарий 2: Въведете идентификационни данни за вход и нулирайте стойността.
  • Сценарий 3: Въведете идентификационни данни за вход в Guru99 и нулирайте стойността. Направете това за 3 групи данни.

Сценарий 1: Отпечатайте текст в конзолата.

В този сценарий ние просто отпечатваме текста в конзолата, като използваме Краставица.

Стъпка 1) Създайте проект в затъмнение.

Създайте Java проект с името "CucumberWithSelenium", както е показано на екрана по-долу.

Стъпка 2) Добавяне на Jar файлове в проекта.

Щракнете с десния бутон върху Проект> Изберете свойства> Отидете на Java Build Path. Добавете всички библиотеки, изтеглени по-рано.

Стъпка 3) Създаване на файл с функции

За създаване на файл с функции първо създайте папка с функции, както е показано по-долу екранна снимка.

Сега въведете името на папката „Функции“ и щракнете върху бутона „Готово“.

Сега създайте файл с функции в папката 'Features' с името "MyTest.feature" - Процесът е подобен на създаването на папка

Забележка: Може да се наложи да инсталирате Cucumber Eclipse Plugin, за да работи това. Отидете - Помощ-> Инсталиране на нов софтуер-> копиране поставете връзката http://cucumber.github.io/cucumber-eclipse/update-site/ и инсталирайте

Стъпка 4) Напишете сценарии.

По-долу редове са написани във файла „MyTest.feature“, използвайки езика корнишън, както е показано по-долу:

Характеристика: Нулиране на функционалността на страницата за вход в приложението

Сценарий: Проверка на бутона за нулиране

Даден Отворете Firefox и стартирайте приложението

Когато въведете потребителско име и парола

След това нулирайте идентификационните данни

Обяснение на кода

Ред 1) В този ред пишем бизнес функционалност.

Ред 2) В този ред пишем сценарий за тестване.

Ред 3) В този ред определяме предпоставката.

Ред 4) В този ред определяме действието, което трябва да извършим.

Ред 4) В този ред определяме очаквания резултат или резултат.

Стъпка 5) Писане на скрипт за селен теструнър за рамков дизайн на селен краставица

Тук създаваме пакета „TestRunner“ и след това файла с класа „Runner.java“ под него.

пакет TestRunner;внос org.junit.runner.RunWith;внос cucumber.api.CucumberOptions;внос краставица.api.junit.Cucumber;@RunWith (Cucumber.class)@CucumberOptions (features = "Характеристики", лепило = {"StepDefinition"})публичен клас Runner{}

В горния примерен код за Cucumber Java изпълняваме теста за краставици, като използваме следните пояснения:

Анотацията @RunWith () разказва за класа на тестовия бегач, за да започне изпълнението на нашите тестове.

Анотацията @CucmberOptions () се използва за задаване на някои свойства за нашия тест за краставици като файл с функции, дефиниция на стъпка и т.н.

Екранна снимка на файла TestRunner.

Стъпка 6) Създаване на скрипт за определяне на стъпка.

Сега тук създаваме пакета „StepDefinition“ и след това скрипт „Steps.java“ под него. Тук всъщност пишем скрипт за селен, за да извършим теста по методите на краставицата.

пакет StepDefinition;импортиране на краставица.api.java.en.Given;внос краставица.api.java.en.След това;внос краставица.api.java.en.Кога;публичен клас Стъпки {@Given ("Отворете Firefox и стартирайте приложението $")public void open_the_Firefox_and_launch_the_application () хвърля Throwable{System.out.println ("Тази стъпка отваря Firefox и стартира приложението.");}@When ("Въведете потребителско име и парола $")public void enter_the_Username_and_Password () хвърля Хвърлимо{System.out.println ("Тази стъпка въведете потребителското име и паролата на страницата за вход.");}@Then ("Нулиране на идентификационните данни $")public void Reset_the_credential () хвърля Хвърлимо{System.out.println ("Тази стъпка щракнете върху бутона Нулиране.");}}

В горния код класът се създава с името „Стъпки“. Анотацията на краставицата се използва за картографиране с файл с функции. Всеки метод за анотиране е дефиниран:

@Given анотация дефинира метод за отваряне на firefox и стартиране на приложението

@ Когато анотацията дефинира метод за въвеждане на потребителско име и парола

@ Тогава метод за дефиниране на анотацията за нулиране на идентификационните данни

При всеки метод отпечатваме само съобщение.

По-долу е екранната снимка на скрипта и дървото на проекта „Steps.java“, как изглежда.

Забележка: Определението на стъпка не е нищо друго освен стъпките, които искате да изпълните по този метод за краставици.

Стъпка 7) Изпълнение на скрипта.

Потребителят може да изпълни този скрипт от Test runner script, т.е. „Runner.java“, както е показано на екрана по-долу.

Стъпка 8) Анализирайте изхода.

При изпълнение на скрипта „Runner.java“ той показва текста на конзолата. Това е същият текст, дефиниран в скрипта „Steps.java“.

Сценарий 2: Въведете идентификационни данни за вход и нулирайте стойността.

Тук просто ще въведем идентификационни данни на демонстрационната страница за вход в Guru99 и ще нулираме стойността

За сценарий 2 трябва да актуализираме само скрипта „Steps.java“. Тук ние всъщност пишем скрипта за селен, както е показано по-долу. Първо, трябва да добавим селениен jar файл към този проект.

Стъпка 1) Тук актуализираме скрипта „Steps.java“, както е показано в долния код и екранна снимка.

пакет StepDefinition;внос org.openqa.selenium.By;импортиране на org.openqa.selenium.WebDriver;импортиране на org.openqa.selenium.firefox.FirefoxDriver;импортиране на краставица.api.java.en.Given;внос краставица.api.java.en.След това;внос краставица.api.java.en.Кога;публичен клас Стъпки {Драйвер за WebDriver;@Given ("Отворете Firefox и стартирайте приложението $")public void open_the_Firefox_and_launch_the_application () хвърля Throwable{System.setProperty ("webdriver.gecko.driver", "E: //Selenium//Selenium_Jars//geckodriver.exe");драйвер = нов FirefoxDriver ();driver.manage (). window (). maximize ();driver.get ("http://demo.guru99.com/v4");}@When ("Въведете потребителско име и парола $")public void enter_the_Username_and_Password () хвърля Хвърлимо{driver.findElement (By.name ("uid")). sendKeys ("username12");driver.findElement (By.name ("парола")). sendKeys ("парола12");}@Then ("Нулиране на идентификационните данни $")public void Reset_the_credential () хвърля Хвърлимо{driver.findElement (By.name ("btnReset")). click ();}}

Екранна снимка на горния скрипт за селен.

Стъпка 2) Изпълнете скрипта.

След актуализиране стартираме Runner.java.

Стъпка 3) Анализирайте изхода.

В изхода можете да видите следното:

  • Стартиран браузър.
  • Демонстрационният сайт на банка Guru99 се отваря.
  • Потребителското име и паролата се поставят на страницата за вход.
  • Нулирайте стойностите.

Сценарий 3: Въведете идентификационни данни за вход в Guru99 и нулирайте стойността. Направете това за 3 групи данни.

Тук трябва да актуализираме както „Step.java“, така и файла на характеристиките.

Стъпка 1) Актуализирайте файла с характеристиките, както е показано по-долу:

Тук актуализираме функционалния файл със синтаксис „Сценарий на схемата“ и „примери“.

Характеристика: Нулиране на функционалността на страницата за вход в приложението

Контур на сценария: Проверка на бутона за нулиране с номера на идентификационни данни

Даден Отворете Firefox и стартирайте приложението

Когато въведете потребителско име <потребителско име> и парола <парола>

След това нулирайте идентификационните данни

Примери:

| потребителско име | парола |

| Потребител1 | парола1 |

| Потребител2 | парола2 |

| Потребител3 | парола3 |

// В този ред определяме набора от данни.

Стъпка 2) Сега актуализирайте скрипта Step.java.

Тук актуализираме методите за предаване на параметрите, актуализиран скрипт, показан по-долу:

пакет StepDefinition;внос org.openqa.selenium.By;импортиране на org.openqa.selenium.WebDriver;импортиране на org.openqa.selenium.firefox.FirefoxDriver;импортиране на краставица.api.java.en.Given;внос краставица.api.java.en.След това;внос краставица.api.java.en.Кога;публичен клас Стъпки {Драйвер за WebDriver;@Given ("Отворете Firefox и стартирайте приложението $")public void open_the_Firefox_and_launch_the_application () хвърля Throwable{System.setProperty ("webdriver.gecko.driver", "E: //Selenium//Selenium_Jars//geckodriver.exe");драйвер = нов FirefoxDriver ();driver.manage (). window (). maximize ();driver.get ("www.demo.guru99.com/v4");}@When ("Въведете потребителското име \" (. *) \ "И Парола \" (. *) \ "$")public void enter_the_Username_and_Password (String потребителско име, String парола) хвърля Throwable{driver.findElement (By.name ("uid")). sendKeys (потребителско име);driver.findElement (By.name ("парола")). sendKeys (парола);}@Then ("Нулиране на идентификационните данни $")public void Reset_the_credential () хвърля Хвърлимо{driver.findElement (By.name ("btnReset")). click ();}}

Стъпка 3) Сега изпълнете актуализирания скрипт.

По-долу екранът показва успешното изпълнение на скрипта и времето, необходимо на всеки набор от данни.

Стъпка 4) Анализирайте изхода.

В изхода можете да видите следното:

По-долу изходът се повтаря за броя набори от данни, т.е. 3 набора.

  • Стартиран браузър.
  • Демонстрационният сайт на банка Guru99 се отваря.
  • Потребителското име и паролата се поставят на страницата за вход.
  • Нулирайте стойностите.

Заключение.

Краставицата е много популярен BDD инструмент. Той е лесен за четене и може да бъде разбран от всички заинтересовани страни, включително техническо и нетехническо лице.

Краставицата може да се интегрира със селен, като се използват следните 3 стъпки

  1. Създайте файл с характеристики, в който стъпка по стъпка дефинирайте характеристиката и сценариите, като използвате езика на корнишън.
  2. Създайте Testrunner файл. В този файл интегрирахме Cucumber с BDD рамка в Selenium. Изпълняваме този скрипт.
  3. Определение на Creat Step, действителният скрипт за селен, дефиниран в този пакет