Огурец - Аннотации

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. Будет повторно выполнен для имени пользователя как «» и пароля как «».