cucumber gherkin tutorial
Този информативен урок обяснява предимствата на рамката за краставици от краставици и как да пишете скриптове за автоматизация, използвайки език на корнишън с ясни примери:
Краставицата е инструмент, базиран на поведенческо развитие (BDD). BDD е методология за разбиране на функционалността на приложение в просто представяне на обикновен текст.
Основната цел на рамката за поведенческо развитие е да накара различните роли на проекти като бизнес анализатори, осигуряване на качеството, разработчици и т.н. да разберат приложението, без да се задълбочават в техническите аспекти.
Инструментът за краставици обикновено се използва в реално време за написване на тестове за приемане на заявление. Инструментът за краставици осигурява поддръжка за много езици за програмиране като Java, Ruby, .Net и др. Може да се интегрира с множество инструменти като Selenium, Capybara и др.
Какво ще научите:
- Какво е корнишонът?
- Предимства на рамката от краставици от краставици
- Интегриране на краставицата със селен
- Заключение
Какво е корнишонът?
Корнишонът е езикът, използван от инструмента за краставици. Това е просто английско представяне на поведението на приложението. Краставицата използва концепцията за файлове с характеристики за целите на документацията. Съдържанието във файловете с функции е написано на език Корнишон.
В следващите теми ще видим повече за предимствата на рамката за краставица от краставици, интегриране на краставица със селен, създаване на файл с функции и съответния файл за дефиниция на стъпка и примерен файл с характеристики.
Общи условия за рамката на краставичките от краставици
Рамката на краставичките от краставици използва определени ключови думи, които са от съществено значение за писане на файл с функции.
Следните термини са най-често използвани във файлове с функции:
# 1) Характеристика:
Файлът на характеристиките трябва да предоставя описание на високо ниво на тествано приложение (AUT). Първият ред на файла с характеристиките трябва да започва с ключовата дума ‘Feature’ след описанието наприложениепод тест. Съгласно стандартите, предписани от Краставицата, файлът с характеристиките трябва да включва следните три елемента като първи ред.
- Ключова дума
- Име на функцията
- Описание на функцията (по избор)
Ключовата дума за характеристика трябва да бъде последвана от име на функция. Той може да включва незадължителен раздел с описание, който може да обхваща няколко реда на файла с характеристиките. Файлът с функции има разширението .feature.
# 2) Сценарий:
Сценарият е тестова спецификация на функционалността, която ще се тества. В идеалния случай файлът с функции може да съдържа един или повече сценария като част от функцията. Сценарият включва множество тестови стъпки. Съгласно стандартите за краставици, сценарият трябва да включва 3-5 тестови стъпки, тъй като дългите сценарии обикновено губят своята изразителна сила, след като броят на стъпките се увеличи.
Сценарият може да включва следните стъпки:
- Действие, което трябва да бъде извършено от потребител.
- Очаквани резултати от действието.
На език корнишон, сценарий трябва да включва следните ключови думи:
- Дадено
- Кога
- Тогава
- И
Като се има предвид:
Дадена ключова дума се използва за определяне на предпоставките за изпълнение на определен сценарий. Сценарий може да включва повече от един даден оператор или не може да има дадени изрази за сценарий.
Кога:
Тази ключова дума се използва за указване на действието или събитието, извършено от потребителя, като например щракване върху бутон, въвеждане на данни в текстово поле и т.н. В един сценарий може да има множество изрази когато.
Тогава:
Тогава ключовата дума се използва за указване на очаквания резултат от действие, извършено от потребителя. В идеалния случай, когато ключовата дума трябва да бъде последвана от ключова дума then, за да разберете очаквания резултат от действията на потребителя.
И:
И ключовата дума се използва като ключова дума за свързване, за да комбинира множество твърдения. Например, множество дадени и кога изрази в сценарий могат да се комбинират с помощта на ключовата дума „И“.
# 3) Сценарий:
Контурът на сценария е начин за параметризиране на сценарии.
Това се използва в идеалния случай, когато е необходимо да се изпълни един и същ сценарий за множество набори от данни, но стъпките на теста остават същите. Сценарийният контур трябва да бъде последван от ключовата дума „Примери“, която посочва набора от стойности за всеки параметър.
По-долу е примерът за разбиране на концепцията за Сценарий:
Пример:
Сценарий: Качи файл
Дадено че потребителят е на екрана за качване на файл.
Кога потребителят щраква върху бутона Преглед.
И потребителят влиза в текстовото поле за качване.
И потребителят щраква върху бутона за въвеждане.
Тогава проверява дали качването на файлове е успешно.
Примери:
| име на файл |
| файл1 |
| файл2 |
Параметрите в очертанията на сценария трябва да бъдат посочени със знаците ‘’. Списък със стойности на данни за параметъра трябва да бъде посочен с помощта на символа Pipe (|).
# 4) Предистория:
Фонова ключова дума се използва за групиране на множество дадени изрази в една група.
Това обикновено се използва, когато един и същ набор от дадени изрази се повтарят във всеки сценарий на файл с характеристики. Вместо да посочват дадени изрази за всеки сценарий многократно, те могат да бъдат посочени с ключовата дума ‘Background’ преди първия сценарий.
Пример:
Заден план:
Даден потребител е на страницата за вход в приложението
Предимства на рамката от краставици от краставици
По-долу са дадени предимствата на рамката за краставица от краставици, които правят краставицата идеален избор за бързо развиваща се Agile методология в днешния корпоративен свят:
- Краставицата е инструмент с отворен код.
- Представянето на обикновен текст улеснява не-техническите потребители да разберат сценариите.
- Той преодолява разликата в комуникацията между различни заинтересовани страни от проекта като бизнес анализатори, разработчици и персонал за осигуряване на качеството.
- Тестовите случаи за автоматизация, разработени с помощта на инструмента „Краставица“, са по-лесни за поддържане и разбиране.
- Лесно се интегрира с други инструменти като Selenium и Capybara.
Интегриране на краставицата със селен
Краставицата и Селенът са двата най-мощни инструмента за функционално тестване. Интеграцията на краставицата със Selenium Webdriver помага на различни нетехнически членове на екип по проекта да разберат потока на приложенията.
По-долу са дадени стъпките, които трябва да се следват за интегрирането на Cucumber с Selenium Webdriver:
Етап 1:
Краставицата може да бъде интегрирана с Selenium Webdriver чрез изтегляне на необходимите JAR файлове.
По-долу е даден списъкът с JAR файлове, които трябва да бъдат изтеглени за използване на Краставица с Selenium Webdriver:
- покритие-2.1.1.jar
- краставица-сърцевина-1.2.2. буркан
- краставица-java-1.2.2.jar
- краставица-джунит-1.2.2.жар
- краставица-jvm-deps-1.0.3.jar
- краставица-отчитане-0.1.0.jar
- корнишон-2.12.2.жар
- hamcrest-core-1.3.jar
- junit-4.11.jar
Горните JAR файлове могат да бъдат изтеглени от Maven уебсайт .
Всеки от горните JAR файлове трябва да бъде изтеглен поотделно от горния уебсайт.
Стъпка 2:
Създайте нов проект в Eclipse и добавете горните JAR файлове към проекта. За да добавите JAR файловете към проекта, щракнете с десния бутон върху проект -> Път за изграждане -> Конфигуриране на Път за изграждане.
Кликнете върху Добавете външни JAR бутон и добавете списъка с горните JAR файлове към проекта.
Стъпка # 3:
Преди да създадем файлове с функции и файлове с дефиниция на стъпки, трябва да инсталираме Natural плъгин в Eclipse. Това може да се направи чрез копиране и поставяне на URL върху Помощ -> Инсталиране на нов софтуер -> URL
Щракнете върху Следващ бутон за да инсталирате приставката в Eclipse.
Създаване на файл с функции
Създайте отделни папки за файлове с функции и файлове за дефиниция на стъпки в структурата на проекта. Файловете за дефиниция на стъпки включват редове за кодиране на Java, докато файлът с функции съдържа английски изявления под формата на език Корнишон.
- Създайте отделна папка за съхраняване на файл с функции, като щракнете с десния бутон върху проекта -> Ново -> Пакет .
- Файлът на характеристиките може да бъде създаден, като отидете с десния бутон върху проекта / пакета -> Ново -> Файл .
- Посочете име за файла с характеристиките. Файлът на характеристиките трябва да бъде последван от разширението .feature
- Структурата на проекта трябва да изглежда като структурата по-долу.
Създаване на файл с дефиниция на стъпка
Всяка стъпка от файла с характеристиките трябва да бъде преобразувана в съответната дефиниция на стъпка. Етикетите, използвани във файла с краставица от краставица, трябва да бъдат съпоставени с дефиницията на стъпката, като се използват маркерите @Given, @When и @Then.
По-долу е синтаксисът на файл с дефиниция на стъпка:
Синтаксис:
@TagName („^ Име на стъпка $“)
Public void methodName ()
{
Определение на метода
}
въпроси и отговори за интервю за разработчици на бази данни pdf
Имената на стъпките трябва да имат префикс със символа карат (^) и суфикс със символа ($). Името на метода може да бъде всяко валидно име, което е приемливо според стандартите за кодиране на Java. Определението на метода включва оператори за кодиране в Java или друг език за програмиране по избор на тестера.
Примери за файлове с функции и стъпки с дефиниция
За създаване на файл с функции и файл с дефиниция на стъпка може да се използва следният сценарий:
Сценарий:
- Отворете страницата за вход на тествано приложение.
- Въведете потребителското име
- Въведете паролата
- Щракнете върху бутона Вход.
- Проверете дали потребителското влизане е успешно.
Файл на функцията:
Горният сценарий може да бъде написан под формата на файл с функции, както по-долу:
Особеност: Влезте в тествано приложение.
Сценарий: Влезте в приложението.
Дадено Отворете браузъра Chrome и стартирайте приложението.
Кога Потребителят въвежда потребителско име в полето UserName.
И Потребителят въвежда парола в полето Парола.
Кога Потребителят кликва върху бутона за вход.
Файл с дефиниция на стъпка:
В горната функция, файл може да бъде преобразуван в съответния файл за дефиниция на стъпка, както е показано по-долу. Моля, обърнете внимание, че за да се осигури връзка между файла с характеристиките и файла с дефиниция на стъпка, трябва да се създаде файл за тестово изпълнение
По-долу е представен файлът с дефиниция на стъпка според неговия файл с функции.
package com.sample.stepdefinitions; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import cucumber.api.java.en.And; import cucumber.api.java.en.Given; import cucumber.api.java.en.When; public class StepDefinition { WebDriver driver; @Given('^Open Chrome browser and launch the application$') public void openBrowser() { driver = new ChromeDriver(); driver.manage().window().maximize(); driver.get('www.facebook.com'); } @When('^User enters username onto the UserName field$') public void enterUserName() { driver.findElement(By.name('username')).sendKeys('test@demo.com'); } @And('^User enters password onto the Password field$') public void enterPassword() { driver.findElement(By.name('password')).sendKeys('test@123'); } @When('^User clicks on Login button$') public void clickOnLogin() { driver.findElement(By.name('loginbutton')).click(); } }
Класът TestRunner се използва за осигуряване на връзка между файла на характеристиките и файла с дефиниция на стъпка. По-долу е представено примерното представяне на това как изглежда класът TestRunner. Класът TestRunner обикновено е празен клас без дефиниция на клас.
Package com.sample.TestRunner import org.junit.runner.RunWith; import cucumber.api.CucumberOptions; import cucumber.api.junit.Cucumber; @RunWith(Cucumber.class) @CucumberOptions(features='Features',glue={'StepDefinition'}) public class Runner { }
Трябва да стартираме файла на класа TestRunner за изпълнение на файлове с функции и файлове с дефиниция на стъпки.
Примери
По-долу е представено представяне на файл с характеристики на различни сценарии.
Пример # 1:
За да проверите дали потребителското име и паролата са налични на страницата за вход:
Особеност: Проверете показването на полетата за потребителско име и парола на страницата за вход.
Сценарий: За да проверите показването на полетата за потребителско име и парола.
Дадено Потребителят отваря браузъра Firefox и се придвижва до тестваното приложение.
Кога Потребителят се придвижва до страница за вход.
Тогава Проверете показването на полето за потребителско име на страницата за вход.
И Проверете показването на полето за парола на страницата за вход.
Пример # 2:
По-долу е примерът за ключова дума за сценарий на контур в Cucumber Gherkin:
Особеност: Проверете дали влизането е успешно за множество набори от тестови данни.
Сценарий: За да проверите дали влизането е успешно за множество набори от тестови данни.
Дадено Отворете браузъра Chrome и стартирайте приложението.
Кога Потребителят влиза в полето UserName.
И Потребителят влиза в полето Парола.
Кога Потребителят кликва върху бутона за вход.
Примери:
| потребителско име | парола |
| потребител1 | парола1 |
| потребител2 | парола2 |
Заключение
- BDD е методология за разбиране на функционалността на приложение в просто представяне в обикновен текст.
- Краставицата е инструмент, който използва поведенческо развитие, за да напише тестове за приемане на заявление. Използва се за преодоляване на комуникационната пропаст между различните заинтересовани страни по проекта.
- Основното използване на Cucumber се крие в неговата простота за разбиране на използването на файлове с функции от нетехнически потребители.
Не е късно да опитате този инструмент за краставици, използвайки език Корнишон.
Препоръчително четене
- Урок за Geb - Тестване за автоматизация на браузъра с помощта на Geb Tool
- Урок за краставици селен: Интеграция на краставица Java Selenium WebDriver
- Автоматизирано тестване с помощта на инструмент за краставици и селен - Урок № 30
- Какво е тестване за автоматизация (Ultimate Guide to Start Test Automation)
- Урок за Spock: Тестване със Spock и Groovy
- Най-добри инструменти за тестване на софтуер 2021 г. (Инструменти за автоматизация на QA теста)
- Урок за деструктивно изпитване и безразрушително тестване
- Функционално тестване срещу нефункционално тестване