Схема сценария в основном заменяет переменную / ключевые слова значением из таблицы. Каждая строка в таблице считается сценарием.
Давайте продолжим с тем же примером функции входа в 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.
В двух словах, когда сценарий не изменяется, а изменяется только значение данных, рекомендуется использовать таблицы данных схемы сценария.