Огурец - Аннотации
Annotationпредопределенный текст, который имеет определенное значение. Это позволяет компилятору / интерпретатору знать, что нужно делать при выполнении. У огурца есть следующие аннотации -
Given -
В нем описываются предварительные условия для выполнения теста.
Пример - ДАННЫЙ Я пользователь Facebook
When -
Он определяет точку запуска для выполнения любого тестового сценария.
Пример - КОГДА я ввожу "<имя пользователя>"
Then -
Затем содержит ожидаемый результат для выполнения теста.
Пример - ТОГДА вход в систему должен быть успешным.
And -
Он обеспечивает логическое условие И между любыми двумя операторами. AND может использоваться вместе с операторами GIVEN, WHEN и THEN.
Пример - КОГДА я ввожу свой «<имя пользователя>» И я ввожу свой «<пароль>»
But -
Это означает логическое ИЛИ между любыми двумя операторами. OR может использоваться вместе с операторами GIVEN, WHEN и THEN.
Пример - ТОГДА вход в систему должен быть успешным. НО домашняя страница не должна отсутствовать.
Scenario -
Подробная информация о тестируемом сценарии должна быть указана после ключевого слова «Сценарий:».
Пример -
Сценарий:
GIVEN Я пользователь Facebook
КОГДА я вхожу в свой
И я вхожу в свой
ТОГДА вход в систему должен быть успешным.
НО домашняя страница не должна отсутствовать.
Scenario Outline - (Будет рассмотрено позже)
Examples - (Будет рассмотрено позже)
Background -
В фоновом режиме обычно есть инструкции по настройке перед запуском каждого сценария. Однако он выполняется после перехвата «Before» (будет рассмотрено позже). Так что это идеально подходит для использования в коде, когда мы хотим настроить веб-браузер или установить соединение с базой данных.
Пример -
Задний план:
Перейдите на домашнюю страницу Facebook.
Пример сценария
Давайте автоматизируем сценарий, чтобы лучше понимать аннотации.
Step 1
Создайте тестовый проект Maven с именем AnnotationTest.
Перейдите в File → New → Others → Maven → Maven Project → Next.
Укажите идентификатор группы (идентификатор группы однозначно идентифицирует ваш проект для всех проектов).
Укажите идентификатор артефакта (идентификатор артефакта - это имя банки без версии. Вы можете выбрать любое имя в нижнем регистре).
Щелкните Готово.
открыто pom.xml −
Перейдите в проводник пакетов в левой части Eclipse.
Разверните проект AnnotationTest.
Найдите файл pom.xml.
Щелкните правой кнопкой мыши и выберите вариант «Открыть с помощью текстового редактора».
Добавить зависимость для Selenium - это укажет Maven, какие jar-файлы Selenium должны быть загружены из центрального репозитория в локальный репозиторий.
Откройте pom.xml в режиме редактирования, создайте тег зависимостей (<dependencies> </dependencies>) внутри тега проекта.
Внутри тега зависимостей создайте тег зависимости (<dependency> </dependency>).
Введите следующую информацию в теге зависимости.
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.47.1</version>
</dependency>
Добавить зависимость для 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 должны быть загружены из центрального репозитория в локальный репозиторий.
Создайте еще один тег зависимости.
Введите следующую информацию в теге зависимости.
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.0.2</version>
<scope>test</scope>
</dependency>
Добавить зависимость для JUnit - это укажет Maven, какие файлы JUnit следует загрузить из центрального репозитория в локальный репозиторий.
Создайте еще один тег зависимости.
Введите следующую информацию в теге зависимости.
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
Проверить двоичные файлы.
После успешного редактирования pom.xml сохраните его.
Перейдите в Project → Clean - это займет несколько минут.
Step 2
Создайте пакет с именем Annotation в src/test/java
Выберите только что созданный проект.
Щелкните правой кнопкой мыши и выберите «Создать».
Выберите вариант «Пакет».
Назовите его «Аннотация».
Сохрани это.
Step 3
Создайте файл функций с именем annotation.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
Step 4
Создайте файл определения шага.
Выберите и щелкните правой кнопкой мыши контур пакета.
Щелкните "Новый" файл.
Дайте имя файла как 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();
}
}
Step 5
Создайте файл класса бегуна.
Выберите и щелкните правой кнопкой мыши контур пакета.
Щелкните "Новый" файл.
Дайте файлу имя, например 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 { }
Step 6
Запустите тест, используя опцию -
Выберите файл runTest.java в проводнике пакетов.
Щелкните правой кнопкой мыши и выберите параметр ‘Run as’
Выберите тест JUnit.
Когда вы запустите этот файл класса, вы увидите следующее:
Facebook открывается в новом экземпляре веб-браузера Firefox.
TOM будет передан как ввод в поле имени пользователя.
ДЖЕРРИ будет передан как ввод в поле пароля.
Будет щелкнуть логин.
В браузере будет отображаться сообщение о неудачном входе в систему.
В консоли вы увидите напечатанное «Тестовое прохождение».
Результат шага с 1. по 5. Будет повторно выполнен для имени пользователя как «» и пароля как «».