automation testing using cucumber tool
В последния урок на Selenium ви запознахме с Решетка от селен кое е да се разпределено изпълнение на теста среда за ускоряване на изпълнението на тест .
Сега в края на тази всеобхватна серия от обучения за Селен, ние се учим напреднали Тестване на селен и свързани понятия.
В този и следващия урок ще ви запознаем с Краставица - а Рамка за поведенческо развитие (BDD), която се използва със Selenium за извършване на тестове за приемане.
Какво ще научите:
- Краставица Въведение
- Основи на краставицата
- Настройка на проект за краставици:
- Заключение
- Препоръчително четене
Краставица Въведение
Краставицата е инструмент, базиран на рамка за поведенческо развитие (BDD), който се използва за написване на тестове за приемане на уеб приложението. Тя позволява автоматизация на функционалната проверка в лесно четим и разбираем формат (като обикновен английски) на бизнес анализатори, разработчици, тестери и др.
Файловете с краставици могат да служат като добър документ за всички. Има много други инструменти като JBehave, които също поддържат BDD рамката. Първоначално Cucumber е внедрен в Ruby и след това е разширен до Java framework. И двата инструмента поддържат роден JUnit.
Поведението, управлявано от разработката, е продължение на Test Driven Development и се използва за тестване на системата, вместо за тестване на конкретната част от кода. Ще обсъдим повече BDD и стила на писане на BDD тестове.
Краставицата може да се използва заедно със Селен, Watir и Capybara и т.н. Краставицата поддържа много други езици като Perl, PHP, Python, Net и т.н. В този урок ще се концентрираме върху Краставицата с Java като език.
Основи на краставицата
За да разберем краставицата, трябва да знаем всички характеристики на краставицата и нейната употреба.
превърнете char в int c ++
# 1) Функционални файлове:
Файловете с функции са съществената част от краставицата, която се използва за писане на стъпки за автоматизация на тестове или тестове за приемане. Това може да се използва като документ на живо. Стъпките са спецификация на приложението. Всички файлове с функции завършват с разширение .feature.
Примерен файл с функции:
Особеност : Функция за функционалност за вход
За да се гарантира, че функционалността за влизане работи,
Искам да пусна теста за краставици, за да проверя дали работи
Сценарий : Функционалност за вход
Дадено потребителят се придвижва до SOFTWARETETINGHELP.COM
Кога потребителят влиза в системата, като използва потребителско име като „ПОТРЕБИТЕЛ“ и парола „ПАРОЛЯ“
Тогава влизането трябва да е успешно
Сценарий : Функционалност за вход
Дадено потребителят се придвижва до SOFTWARETETINGHELP.COM
Кога потребителят влиза в системата, като използва потребителско име като „ПОТРЕБИТЕЛ1“ и парола „ПАРОЛЯ1“
Тогава съобщението за грешка трябва да бъде хвърлено
# 2) Характеристика:
т неговата дава информация за бизнес функционалността на високо ниво (вижте предишния пример) и целта на тестваното приложение. Всеки трябва да може да разбере намерението на файла с характеристиките, като прочете първата стъпка на характеристиката. Тази част по същество се поддържа кратка.
# 3) Сценарий:
По принцип, сценарий представлява определена функционалност, която е в процес на тестване. Като вижда сценария, потребителят трябва да може да разбере намерението зад сценария и какво представлява тестът. Всеки сценарий трябва да следва даден, кога и след това формат. Този език се нарича „корнишон“.
- Като се има предвид: Както бе споменато по-горе, даденото определя предварителните условия. По същество това е известно състояние.
- Кога : Това се използва, когато трябва да се извърши някакво действие. Както в горния пример, видяхме, когато потребителят се опита да влезе с потребителско име и парола, това се превръща в действие .
- Тогава: Очакваният резултат или резултат трябва да се поставят тук. За пример: проверете дали влизането е успешно, успешна навигация на страницата.
- Заден план: Винаги, когато се изисква да се извърши някаква стъпка във всеки сценарий, тези стъпки трябва да бъдат поставени във фонов режим. За пример: Ако потребителят трябва да изчисти базата данни преди всеки сценарий, тези стъпки могат да бъдат поставени на заден план.
- И : И се използва за комбиниране на два или повече еднотипни действия.
Пример:
Особеност : Функция за функционалност за вход
Сценарий : Функционалност за вход
Дадено потребителят се придвижва до SOFTWARETETINGHELP.COM
Кога потребителят влиза в системата, използвайки Потребителско име като „ПОТРЕБИТЕЛ“
И парола като „парола“
Тогава влизането трябва да е успешно
И Трябва да се покаже началната страница
трафикът от безжична мрежа може да бъде уловен с помощта на sniffers.
Пример за фон:
Заден план:
Дадено потребител влезе като администратор на бази данни
И всички нежелани стойности се изчистват
# 4) Сценарий:
Сценарийните контури се използват, когато един и същ тест трябва да се извърши с различен набор от данни. Да вземем същия пример. Трябва да тестваме функционалността за влизане с множество различни набори от потребителско име и парола.
Особеност : Функция за функционалност за вход
За да се гарантира, че функционалността за влизане работи,
Искам да пусна теста за краставици, за да проверя дали работи
Контур на сценария : Функционалност за вход
Дадено потребителят се придвижва до SOFTWARETESTINGHELP.COM
Кога потребителят влиза в системата, като използва Потребителско име като< потребителско име > и парола< парола >
Тогава влизането трябва да е успешно
Примери:
| потребителско име | парола |
| Том | парола1 |
| Хари | парола2 |
| Джери | парола3 |
Забележка:
- Както е показано в горния пример, имената на колоните се предават като параметър на Кога изявление.
- Вместо Сценарий, трябва да използвате Сценарий Контур.
- Примерите се използват за предаване на различни аргументи в табличен формат. Вертикалните тръби се използват за разделяне на две различни колони. Пример може да съдържа много различни колони.
# 5) Етикети:
Краставицата по подразбиране изпълнява всички сценарии във всички файлове с функции. В проекти в реално време може да има стотици функционални файлове, които не са задължени да се изпълняват по всяко време.
Например : Функционалните файлове, свързани с теста за дим, не трябва да се изпълняват през цялото време. Така че, ако споменете етикет като бездимен във всеки файл с функции, който е свързан с теста за дим и изпълнява тест за краставици с маркер @SmokeTest. Краставицата ще изпълнява само онези функционални файлове, специфични за дадени маркери. Моля, следвайте примера по-долу. Можете да посочите няколко маркера в един файл с функции.
Пример за използване на единични тагове:
@SmokeTest
Особеност : Функция за функционалност за вход
За да се гарантира, че функционалността за влизане работи,
Искам да пусна теста за краставици, за да проверя дали работи
Контур на сценария : Функционалност за вход
Дадено потребителят се придвижва до SOFTWARETESTINGHELP.COM
Кога потребителят влиза в системата, като използва Потребителско име като< потребителско име > и парола< парола >
Тогава влизането трябва да е успешно
Примери:
| потребителско име | парола |
| Том | парола1 |
| Хари | парола2 |
| Джери | парола3 |
Пример за използване на множество тагове:
Както е показано в примера по-долу, същият файл с функции може да се използва както за сценарии за изпитване на дим, така и за сценарий на тест за вход. Когато възнамерявате да стартирате скрипта си за тест за дим, използвайте @SmokeTest. По същия начин, когато искате вашият скрипт да се изпълни за тест за вход, използвайте маркера @LoginTest.
Може да се спомене произволен брой тагове за файл с функции, както и за сценарий.
@SmokeTest @LoginTest
Особеност : Функция за функционалност за вход
За да се гарантира, че функционалността за влизане работи,
Искам да пусна теста за краставици, за да проверя дали работи
Контур на сценария : Функционалност за вход
Дадено потребителят се придвижва до SOFTWARETETINGHELP.COM
Кога потребителят влиза в системата, като използва потребителско име като и парола
Тогава влизането трябва да е успешно
Примери:
| потребителско име | парола |
| Том | парола1 |
| Хари | парола2 |
| Джери | парола3 |
По същия начин можете да посочите маркери за изпълнение на конкретния сценарий във файл с функции. Моля, проверете примера по-долу, за да стартирате конкретен сценарий.
Особеност : Функция за функционалност за вход
За да се гарантира, че функционалността за влизане работи,
Искам да пусна теста за краставици, за да проверя дали работи
@positiveScenario
Сценарий : Функционалност за вход
Дадено потребителят се придвижва до SOFTWARETETINGHELP.COM
Кога потребителят влиза в системата, като използва потребителско име като „ПОТРЕБИТЕЛ“ и парола „ПАРОЛЯ“
Тогава влизането трябва да е успешно
въпроси и отговори за интервю за настолна поддръжка
@negaviveScenario
Сценарий : Функционалност за вход
Дадено потребителят се придвижва до SOFTWARETETINGHELP.COM
Кога потребителят влиза в системата, като използва потребителско име като „ПОТРЕБИТЕЛ1“ и парола „ПАРОЛЯ1“
Тогава съобщение за грешка трябва да хвърли
# 6) JUnit Runner:
За да стартирате конкретния файл с функции, краставицата използва стандартния JUnit Runner и посочва маркери в @Cucumber. Настроики. Няколко маркера могат да бъдат дадени чрез разделяне със запетая. Тук можете да посочите пътя на отчета и вида на отчета, който искате да генерирате.
Пример за Junit Runner:
import cucumber.api.junit.Cucumber;
внос org.junit.runner.RunWith; @RunWith (Cucumber.class) @ Cucumber.Options (format = {'SimpleHtmlReport: report / smokeTest.html'}, tags = {'@ smokeTest'}) Публичен клас JUnitRunner {} По същия начин можете да дадете инструкции на краставицата да изпълнява множество тагове. По-долу пример илюстрира как да използвате множество маркери в краставица за изпълнение на различни сценарии.
import cucumber.api.junit.Cucumber; import org.junit.runner.RunWith; @RunWith(Cucumber.class) @Cucumber.Options(format={'SimpleHtmlReport:report/smokeTest.html'},tags={'@smokeTest',”@LoginTest”}) Public class JUnitRunner { }
# 7) Доклад за краставици:
Краставицата генерира свой собствен HTML формат. Въпреки това, по-добро докладване може да се направи с помощта на Дженкинс или бамбуков инструмент. Подробности за докладването са описани в следващата тема за краставицата.
Настройка на проект за краставици:
Подробно обяснение на създадения проект за краставици е достъпно отделно в следващия урок. Моля, направете справка с Урок за краставици Част 2 от повече информация относно настройката на проекта. Не забравяйте, че не са необходими допълнителни софтуерни инсталации за краставица.
Внедряване на файл с функции:
Трябва да приложим тези стъпки в Java, за да тестваме файловете с функции. Трябва да създадете клас, който съдържа тези, дадени, кога и след това изявления. Краставицата използва своите пояснения и всички стъпки са вградени в тези пояснения (дадени, кога, тогава). Всяка фраза започва с „^“, така че краставицата да разбира началото на стъпката. По същия начин всяка стъпка завършва с „$“. Потребителят може да използва регулярни изрази, за да предаде различни тестови данни. Регулярните изрази вземат данни от стъпките на характеристиките и преминават към дефиниции на стъпки. Редът на параметрите зависи от начина, по който те се предават от функционен файл. Моля, направете справка в следващия урок за настройка на проекта и картографиране между файлове с функции и Java класове.
Пример:
По-долу пример е да илюстрира как могат да бъдат внедрени файлове с функции.
В този пример не сме използвали API за селен. Това е просто да покажем как краставицата работи като самостоятелна рамка. Моля, следвайте следващия урок за интегриране на селен с краставица.
public class LoginTest { @Given('^user navigates to SOFTWARETETINGHELP.COM$') public void navigatePage() { system.out.println(“Cucumber executed Given statement”); } @When('^user logs in using Username as '(.*)' and Password '(.*)'$') public void login(String usename,String password) { system.out.println(“Username is:”+ usename); system.out.println(“Password is:”+ password); } @When('^click the Submit button$') public void clickTheSubmitButton() { system.out.println(“Executing When statement”) } @Then('^Home page should be displayed$') public void validatePage() { system.out.println(“Executing Then statement”) } @Then('^login should be successful$') public void validateLoginSuccess() { system.out.println(“Executing 2nd Then statement”) } }
Когато изпълнявате клас на бегач на краставици, краставицата ще започне да чете стъпки във файловия файл. Например, когато изпълните @smokeTest, краставицата ще прочете Особеност стъпка и Дадено изявление на сценарий . Веднага щом краставицата намери Предвид изявлението, същото Дадено изявление ще бъде търсен за вашите java файлове. Ако същата стъпка бъде намерена в java файл, тогава краставицата изпълнява функцията, посочена за същата стъпка, в противен случай краставицата ще пропусне стъпката.
Заключение
В този урок сме разгледали характеристиките на инструмента за краставици и неговото използване в сценарий в реално време.
Краставицата е най-любимият инструмент за много проекти, тъй като е лесна за разбиране, четима и съдържа бизнес функционалност.
В следващата глава , ще разгледаме как да създадем проект за краставица - java и как да интегрираме Selenium WebDriver с краставица.
Препоръчително четене
- Урок за краставици селен: Интеграция на краставица Java Selenium WebDriver
- 30+ най-добри урока за селен: Научете селен с реални примери
- Урок за селенова мрежа: Настройка и пример за тестване на различни браузъри
- Spock за интеграция и функционални тестове със селен
- Използване на инструмента за автоматизация на изграждането на Maven и настройката на проекта на Maven за селен - селен урок # 24
- Въведение в Selenium WebDriver - Урок № 8 за селен
- Уроци за задълбочено затъмнение за начинаещи
- Урок за инструмент за тестване на достъпност на WAVE