Учебники

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

Аннотация — это предопределенный текст, который имеет определенное значение. Это позволяет компилятору / интерпретатору знать, что нужно делать после выполнения. Огурец получил следующие несколько аннотаций —

  • Дано

    • Он описывает предварительные условия для теста, который будет выполнен.

    • Пример — ПОДАРОК ​​Я пользователь 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. Будет повторен для имени пользователя как «» и пароля как «».