Схема сценария в основном заменяет переменную / ключевые слова значением из таблицы. Каждая строка в таблице считается сценарием.
Давайте продолжим с тем же примером функции входа в Facebook. До сих пор мы выполняли один сценарий: после предоставления правильного имени пользователя вход в систему прошел успешно. Теперь предположим, что мы хотим проверить успешность входа в систему для всех трех возможных типов ввода: имени пользователя, адреса электронной почты или номера телефона. Чтобы достичь этого, нам нужно написать три разных сценария, где каждый сценарий будет варьироваться в зависимости от типа ввода, вход в систему успешен. В этом случае сценарии будут выглядеть следующим образом.
Сценарий:
Данный пользователь переходит на Facebook
Когда я ввожу правильное имя пользователя и пароль
Тогда вход должен быть успешным
Сценарий:
Данный пользователь переходит на Facebook
Когда я ввожу правильный адрес электронной почты и пароль
Тогда вход должен быть успешным
Сценарий:
Данный пользователь переходит на Facebook
Когда я ввожу правильный номер телефона и пароль
Тогда вход должен быть успешным
Здесь, если мы посмотрим ближе, для вышеупомянутых трех сценариев: операторы одинаковы, изменяется только входной параметр (имя пользователя / адрес электронной почты / номер телефона). Вот где важность набросков сценария вступает в картину.
Когда мы определяем любой сценарий со схемой сценария, мы можем указать один тестовый сценарий, и в нижней части мы можем предоставить несколько входных данных. Сценарий будет выполнен столько раз, сколько предоставлено входов.
пример
Давайте создадим пример схемы сценария —
Шаг 1 — Создайте тестовый проект Maven с именем ScenarioOutlineTest
-
Перейдите в Файл → Создать → Другие → Maven → Проект Maven → Далее.
-
Укажите идентификатор группы (идентификатор группы будет идентифицировать ваш проект однозначно во всех проектах).
-
Укажите идентификатор артефакта (идентификатор артефакта — это имя банки без версии. Вы можете выбрать любое имя в нижнем регистре).
-
Нажмите на Готово.
-
Откройте pom.xml —
-
Перейдите к исследователю пакетов в левой части Eclipse.
-
Разверните проект CucumberTest.
-
Найдите файл pom.xml.
-
Щелкните правой кнопкой мыши и выберите опцию Открыть с помощью «Текстового редактора».
-
-
Добавить зависимость для Selenium — это будет указывать Maven, какие файлы jar Selenium следует загружать из центрального хранилища в локальное хранилище.
-
Откройте файл pom.xml в режиме редактирования, создайте тег зависимостей (<dependencies> </ dependencies>) внутри тега проекта.
-
Внутри тега зависимости создайте тег зависимости (<зависимость> </ зависимость>).
-
Укажите следующую информацию в теге зависимости.
-
Перейдите в Файл → Создать → Другие → Maven → Проект Maven → Далее.
Укажите идентификатор группы (идентификатор группы будет идентифицировать ваш проект однозначно во всех проектах).
Укажите идентификатор артефакта (идентификатор артефакта — это имя банки без версии. Вы можете выбрать любое имя в нижнем регистре).
Нажмите на Готово.
Откройте pom.xml —
Перейдите к исследователю пакетов в левой части Eclipse.
Разверните проект CucumberTest.
Найдите файл 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>
-
Добавить зависимость для 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 — Создайте пакет с именем «outline» в src / test / java
Шаг 3 — Создайте файл объектов с именем «outline.feature»
-
Выберите и щелкните правой кнопкой мыши на схеме пакета.
-
Нажмите на «Новый» файл.
-
Дайте имя файла, например, «outline.feature»
-
Запишите следующий текст в файл и сохраните его.
Особенность — Схема Сценария
Схема сценария — Функциональность входа для сайта социальной сети.
Данный пользователь переходит на Facebook
Когда я ввожу имя пользователя как «<имя пользователя>» и пароль как «<пароль>»
Тогда логин должен быть неудачным
-
Выберите и щелкните правой кнопкой мыши на схеме пакета.
Нажмите на «Новый» файл.
Дайте имя файла, например, «outline.feature»
Запишите следующий текст в файл и сохраните его.
Особенность — Схема Сценария
Схема сценария — Функциональность входа для сайта социальной сети.
Данный пользователь переходит на Facebook
Когда я ввожу имя пользователя как «<имя пользователя>» и пароль как «<пароль>»
Тогда логин должен быть неудачным
Пример —
| username | password | | username1 | password1 | | username2 | password2 |
Примечание. Здесь примерная аннотация описывает диапазон входных данных, предоставляемых при выполнении сценария. Тестовый сценарий будет выполняться для каждого из предоставленных входных данных. Итак, в данном примере тестовый сценарий будет выполнен трижды.
Шаг 4 — Создайте файл определения шага.
-
Выберите и щелкните правой кнопкой мыши на схеме пакета.
-
Нажмите на «Новый» файл.
-
Дайте имя файла как stepdefinition.java
-
Запишите следующий текст в файл и сохраните его.
Выберите и щелкните правой кнопкой мыши на схеме пакета.
Нажмите на «Новый» файл.
Дайте имя файла как stepdefinition.java
Запишите следующий текст в файл и сохраните его.
package Outline;
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 stepdefinition {
WebDriver driver = null;
@Given("^user navigates to facebook$")
public void goToFacebook() {
driver = new FirefoxDriver();
driver.navigate().to("https://www.facebook.com/");
}
@When("^I enter Username as \"([^\"]*)\" and Password as \"([^\"]*)\"$")
public void I_enter_Username_as_and_Password_as(String arg1, String arg2) {
driver.findElement(By.id("email")).sendKeys(arg1);
driver.findElement(By.id("pass")).sendKeys(arg2);
driver.findElement(By.id("u_0_v")).click();
}
@Then("^login should be unsuccessful$")
public void validateRelogin() {
if(driver.getCurrentUrl().equalsIgnoreCase(
"https://www.facebook.com/login.php?login_attempt=1&lwv=110")){
System.out.println("Test Pass");
} else {
System.out.println("Test Failed");
}
driver.close();
}
}
Примечание. В приведенном выше коде мы должны определить функцию, имеющую два входных аргумента: один для имени пользователя и другой для пароля. Таким образом, для каждого набора входных данных, представленных в примере тега, будут выполнены наборы GIVEN, WHEN и THEN.
Шаг 5 — Создайте файл класса бегуна.
-
Выберите и щелкните правой кнопкой мыши на схеме пакета.
-
Нажмите на «Новый» файл.
-
Дайте имя файла, например, runTest.java
-
Запишите следующий текст в файл и сохраните его.
Выберите и щелкните правой кнопкой мыши на схеме пакета.
Нажмите на «Новый» файл.
Дайте имя файла, например, runTest.java
Запишите следующий текст в файл и сохраните его.
package Outline;
import org.junit.runner.RunWith;
import cucumber.junit.Cucumber;
@RunWith(Cucumber.class)
@Cucumber.Options(format = {"pretty", "html:target/cucumber"})
public class runTest { }
-
Запустите тест, используя опцию —
-
Выберите файл runTest.java из проводника пакетов.
-
Щелкните правой кнопкой мыши и выберите параметр «Запуск от имени» .
-
Выберите JUnit test.
-
Запустите тест, используя опцию —
Выберите файл runTest.java из проводника пакетов.
Щелкните правой кнопкой мыши и выберите параметр «Запуск от имени» .
Выберите JUnit test.
При запуске этого файла класса вы увидите следующие вещи
-
Facebook открывается в новом экземпляре браузера Firefox.
-
Имя пользователя1 и пароль1 будут переданы в качестве ввода в поле имени пользователя и пароля.
-
Логин будет нажат.
-
В браузере появится сообщение о неудачном входе в систему.
-
В консоли вы увидите напечатанный «Test Pass».
-
Результаты шагов с 1 по 5 будут повторно выполнены для имени пользователя2 и пароля2.
Facebook открывается в новом экземпляре браузера Firefox.
Имя пользователя1 и пароль1 будут переданы в качестве ввода в поле имени пользователя и пароля.
Логин будет нажат.
В браузере появится сообщение о неудачном входе в систему.
В консоли вы увидите напечатанный «Test Pass».
Результаты шагов с 1 по 5 будут повторно выполнены для имени пользователя2 и пароля2.
В двух словах, когда сценарий не изменяется, а изменяется только значение данных, рекомендуется использовать таблицы данных схемы сценария.
