Аннотация — это предопределенный текст, который имеет определенное значение. Это позволяет компилятору / интерпретатору знать, что нужно делать после выполнения. Огурец получил следующие несколько аннотаций —
-
Дано —
-
Он описывает предварительные условия для теста, который будет выполнен.
-
Пример — ПОДАРОК Я пользователь Facebook
-
-
Когда —
-
Он определяет точку запуска для выполнения любого тестового сценария.
-
Пример — КОГДА я ввожу «<имя пользователя>»
-
-
Тогда —
-
Затем содержит ожидаемый результат для теста, который будет выполнен.
-
Пример — ТОГДА логин должен быть успешным.
-
-
И —
-
Он обеспечивает логическое условие И между любыми двумя операторами. И может использоваться в сочетании с инструкциями GIVEN, WHEN и THEN.
-
Пример — КОГДА я ввожу свой «<username>» И я вводю свой «<пароль>»
-
-
Но —
-
Это означает логическое условие ИЛИ между любыми двумя утверждениями. ИЛИ может использоваться вместе с инструкциями GIVEN, WHEN и THEN.
-
Пример — ТОГДА логин должен быть успешным. НО домашняя страница не должна отсутствовать.
-
-
Сценарий —
-
Подробная информация о сценарии в тесте должна быть зафиксирована после ключевого слова «Сценарий:»
-
Пример —
Сценарий:
ПОДАРОК Я пользователь Facebook
КОГДА я вхожу в
И я вхожу в мой
ТОГДА логин должен быть успешным.
НО домашняя страница не должна отсутствовать.
-
-
План сценария — (будет рассмотрен позже)
-
Примеры — (будет рассмотрено позже)
-
Фон —
-
Фон обычно содержит инструкцию о том, что настраивать перед выполнением каждого сценария. Однако он выполняется после хука «До» (будет рассмотрен позже). Так что это идеально подходит для кода, когда мы хотим настроить веб-браузер или установить соединение с базой данных.
-
Пример —
Фон:
Перейти на домашнюю страницу Facebook.
-
-
Дано —
Он описывает предварительные условия для теста, который будет выполнен.
Пример — ПОДАРОК Я пользователь Facebook
Когда —
Он определяет точку запуска для выполнения любого тестового сценария.
Пример — КОГДА я ввожу «<имя пользователя>»
Тогда —
Затем содержит ожидаемый результат для теста, который будет выполнен.
Пример — ТОГДА логин должен быть успешным.
И —
Он обеспечивает логическое условие И между любыми двумя операторами. И может использоваться в сочетании с инструкциями GIVEN, WHEN и THEN.
Пример — КОГДА я ввожу свой «<username>» И я вводю свой «<пароль>»
Но —
Это означает логическое условие ИЛИ между любыми двумя утверждениями. ИЛИ может использоваться вместе с инструкциями GIVEN, WHEN и THEN.
Пример — ТОГДА логин должен быть успешным. НО домашняя страница не должна отсутствовать.
Сценарий —
Подробная информация о сценарии в тесте должна быть зафиксирована после ключевого слова «Сценарий:»
Пример —
Сценарий:
ПОДАРОК Я пользователь Facebook
КОГДА я вхожу в
И я вхожу в мой
ТОГДА логин должен быть успешным.
НО домашняя страница не должна отсутствовать.
План сценария — (будет рассмотрен позже)
Примеры — (будет рассмотрено позже)
Фон —
Фон обычно содержит инструкцию о том, что настраивать перед выполнением каждого сценария. Однако он выполняется после хука «До» (будет рассмотрен позже). Так что это идеально подходит для кода, когда мы хотим настроить веб-браузер или установить соединение с базой данных.
Пример —
Фон:
Перейти на домашнюю страницу Facebook.
Пример сценария
Давайте автоматизируем сценарий, чтобы лучше понимать аннотации.
Шаг 1
Создайте тестовый проект Maven с именем AnnotationTest .
-
Перейдите в Файл → Создать → Другие → Maven → Проект Maven → Далее.
-
Укажите идентификатор группы (идентификатор группы будет идентифицировать ваш проект однозначно во всех проектах).
-
Укажите идентификатор артефакта (идентификатор артефакта — это имя банки без версии. Вы можете выбрать любое имя в нижнем регистре).
-
Нажмите на Готово.
-
Откройте pom.xml —
-
Перейдите к исследователю пакетов в левой части Eclipse.
-
Разверните проект AnnotationTest.
-
Найдите файл pom.xml.
-
Щелкните правой кнопкой мыши и выберите опцию Открыть с помощью «Текстового редактора».
-
-
Добавить зависимость для Selenium — это будет указывать Maven, какие файлы jar Selenium следует загружать из центрального хранилища в локальное хранилище.
-
Откройте файл pom.xml в режиме редактирования, создайте тег зависимостей (<dependencies> </ dependencies>) внутри тега проекта.
-
Внутри тега зависимости создайте тег зависимости (<зависимость> </ зависимость>).
-
Укажите следующую информацию в теге зависимости.
-
Перейдите в Файл → Создать → Другие → Maven → Проект Maven → Далее.
Укажите идентификатор группы (идентификатор группы будет идентифицировать ваш проект однозначно во всех проектах).
Укажите идентификатор артефакта (идентификатор артефакта — это имя банки без версии. Вы можете выбрать любое имя в нижнем регистре).
Нажмите на Готово.
Откройте pom.xml —
Перейдите к исследователю пакетов в левой части Eclipse.
Разверните проект AnnotationTest.
Найдите файл pom.xml.
Щелкните правой кнопкой мыши и выберите опцию Открыть с помощью «Текстового редактора».
Добавить зависимость для Selenium — это будет указывать Maven, какие файлы jar Selenium следует загружать из центрального хранилища в локальное хранилище.
Откройте файл pom.xml в режиме редактирования, создайте тег зависимостей (<dependencies> </ dependencies>) внутри тега проекта.
Внутри тега зависимости создайте тег зависимости (<зависимость> </ зависимость>).
Укажите следующую информацию в теге зависимости.
<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>2.47.1</version> </dependency>
-
Добавить зависимость для Cucumber-Java — это будет указывать Maven, какие файлы Cucumber должны быть загружены из центрального репозитория в локальный репозиторий.
-
Создайте еще один тег зависимости.
-
Предоставьте следующую информацию в теге зависимостей.
-
Добавить зависимость для Cucumber-Java — это будет указывать Maven, какие файлы Cucumber должны быть загружены из центрального репозитория в локальный репозиторий.
Создайте еще один тег зависимости.
Предоставьте следующую информацию в теге зависимостей.
<dependency> <groupId>info.cukes</groupId> <artifactId>cucumber-java</artifactId> <version>1.0.2</version> <scope>test</scope> </dependency>
-
Добавить зависимость для Cucumber-JUnit — это будет указывать Maven, какие файлы Cucumber JUnit должны быть загружены из центрального репозитория в локальный репозиторий.
-
Создайте еще один тег зависимости.
-
Укажите следующую информацию в теге зависимости.
-
Добавить зависимость для Cucumber-JUnit — это будет указывать Maven, какие файлы Cucumber JUnit должны быть загружены из центрального репозитория в локальный репозиторий.
Создайте еще один тег зависимости.
Укажите следующую информацию в теге зависимости.
<dependency> <groupId>info.cukes</groupId> <artifactId>cucumber-junit</artifactId> <version>1.0.2</version> <scope>test</scope> </dependency>
-
Добавить зависимость для JUnit — это будет указывать Maven, какие файлы JUnit должны быть загружены из центрального репозитория в локальный репозиторий.
-
Создайте еще один тег зависимости.
-
Укажите следующую информацию в теге зависимости.
-
Добавить зависимость для JUnit — это будет указывать Maven, какие файлы JUnit должны быть загружены из центрального репозитория в локальный репозиторий.
Создайте еще один тег зависимости.
Укажите следующую информацию в теге зависимости.
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>test</scope> </dependency>
-
Проверьте двоичные файлы.
-
После успешного редактирования pom.xml сохраните его.
-
Перейдите в Проект → Очистить — это займет несколько минут.
-
Проверьте двоичные файлы.
После успешного редактирования pom.xml сохраните его.
Перейдите в Проект → Очистить — это займет несколько минут.
Шаг 2
Создайте пакет с именем Annotation в src / test / java
-
Выберите недавно созданный проект.
-
Щелкните правой кнопкой мыши и выберите «Новый».
-
Выберите опцию «Пакет».
-
Назовите это как «Аннотация».
-
Сохрани это.
Выберите недавно созданный проект.
Щелкните правой кнопкой мыши и выберите «Новый».
Выберите опцию «Пакет».
Назовите это как «Аннотация».
Сохрани это.
Шаг 3
Создайте файл объектов с именем annotation.feature .
-
Выберите и щелкните правой кнопкой мыши на схеме пакета.
-
Нажмите на «Новый» файл.
-
Дайте файлу имя, такое как outline.feature .
-
Запишите следующий текст в файл и сохраните его.
Выберите и щелкните правой кнопкой мыши на схеме пакета.
Нажмите на «Новый» файл.
Дайте файлу имя, такое как outline.feature .
Запишите следующий текст в файл и сохраните его.
Feature: annotation #This is how background can be used to eliminate duplicate steps Background: User navigates to Facebook Given I am on Facebook login page #Scenario with AND Scenario: When I enter username as "TOM" And I enter password as "JERRY" Then Login should fail #Scenario with BUT Scenario: When I enter username as "TOM" And I enter password as "JERRY" Then Login should fail But Relogin option should be available
Шаг 4
Создайте файл определения шага.
-
Выберите и щелкните правой кнопкой мыши на схеме пакета.
-
Нажмите на «Новый» файл.
-
Дайте имя файла как annotation.java
-
Запишите следующий текст в файл и сохраните его.
Выберите и щелкните правой кнопкой мыши на схеме пакета.
Нажмите на «Новый» файл.
Дайте имя файла как annotation.java
Запишите следующий текст в файл и сохраните его.
package Annotation; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import cucumber.annotation.en.Given; import cucumber.annotation.en.Then; import cucumber.annotation.en.When; public class annotation { WebDriver driver = null; @Given("^I am on Facebook login page$") public void goToFacebook() { driver = new FirefoxDriver(); driver.navigate().to("https://www.facebook.com/"); } @When("^I enter username as \"(.*)\"$") public void enterUsername(String arg1) { driver.findElement(By.id("email")).sendKeys(arg1); } @When ("^I enter password as \"(.*)\"$") public void enterPassword(String arg1) { driver.findElement(By.id("pass")).sendKeys(arg1); driver.findElement(By.id("u_0_v")).click(); } @Then("^Login should fail$") public void checkFail() { if(driver.getCurrentUrl().equalsIgnoreCase( "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){ System.out.println("Test1 Pass"); } else { System.out.println("Test1 Failed"); } driver.close(); } @Then("^Relogin option should be available$") public void checkRelogin() { if(driver.getCurrentUrl().equalsIgnoreCase( "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){ System.out.println("Test2 Pass"); } else { System.out.println("Test2 Failed"); } driver.close(); } }
Шаг 5
Создайте файл класса бегуна.
-
Выберите и щелкните правой кнопкой мыши на схеме пакета.
-
Нажмите на «Новый» файл.
-
Дайте файлу имя, например, runTest.java
-
Запишите следующий текст в файл и сохраните его.
Выберите и щелкните правой кнопкой мыши на схеме пакета.
Нажмите на «Новый» файл.
Дайте файлу имя, например, runTest.java
Запишите следующий текст в файл и сохраните его.
package Annotation; import org.junit.runner.RunWith; import cucumber.junit.Cucumber; @RunWith(Cucumber.class) @Cucumber.Options(format = {"pretty", "html:target/cucumber"}) public class runTest { }
Шаг 6
Запустите тест, используя опцию —
-
Выберите файл runTest.java из проводника пакетов.
-
Щелкните правой кнопкой мыши и выберите параметр «Запуск от имени».
-
Выберите JUnit test.
Выберите файл runTest.java из проводника пакетов.
Щелкните правой кнопкой мыши и выберите параметр «Запуск от имени».
Выберите JUnit test.
При запуске этого файла класса вы увидите следующее:
Facebook открывается в новом экземпляре браузера Firefox.
TOM будет передан в качестве ввода в поле имени пользователя.
Джерри будет передан в качестве ввода в поле пароля.
Логин будет нажат.
В браузере появится сообщение о неудачном входе в систему.
В консоли вы увидите напечатанный «Test Pass»
Шаг с 1 по 5. Будет повторен для имени пользователя как «» и пароля как «».