Как использовать и настроить Gherkin в фреймворке Yii2


Yii2 — популярный PHP-фреймворк, который предоставляет разработчикам инструменты для создания высокопроизводительных веб-приложений. Одним из самых мощных инструментов Yii2 является Gherkin — язык описания функциональности приложения в формате естественного языка. Использование Gherkin позволяет упростить процесс разработки и тестирования приложений, а также повысить понимание требований заказчика и командой разработки.

В данной статье мы рассмотрим, как использовать и настраивать Gherkin в Yii2. Мы опишем основные концепции Gherkin, такие как функции, шаги и сценарии, а также покажем, как создать собственные шаблоны шагов и настроить их выполнение. Кроме того, мы рассмотрим несколько примеров использования Gherkin в Yii2, чтобы продемонстрировать его преимущества и возможности.

Gherkin основан на языке Behavior-Driven Development (BDD), который ставит акцент на понятность и читаемость кода. Он позволяет разработчикам, тестировщикам и заказчикам использовать общий язык для описания и проверки требований к приложению. Gherkin использует ключевые слова, такие как «Дано», «Если», «То» и «И», которые помогают структурировать и организовать описание функциональности приложения.

Использование и настройка Gherkin в Yii2

Для использования Gherkin в Yii2 необходимо выполнить следующие шаги:

1. Установить расширение Yii2-behat, которое предоставляет интеграцию Gherkin в фреймворк.

2. Настроить конфигурацию приложения для поддержки Gherkin.

3. Создать файлы сценариев, описывающие требования и ожидаемое поведение системы.

4. Выполнить тесты сценариев и получить отчет о пройденных и не пройденных тестах.

Для начала необходимо установить расширение Yii2-behat с помощью Composer. Для этого достаточно выполнить следующую команду в терминале:

composer require --dev yii2tech/behat

После успешной установки можно приступать к настройке конфигурации приложения. Для этого необходимо создать файл behat.yml в корневой директории проекта и добавить следующий код:

default:suites:Yii2Functional:paths:- tests/functionalcontexts:- yii2tech\behat\Yii2MainContextextensions:yii2tech\behat\Yii2Extension:yii2ConfigFile: '@tests/../config/test.php'appDir: '@tests/../'

В данной конфигурации мы указываем, что у нас будет один набор тестов Yii2Functional, который будет храниться в директории tests/functional. Также мы определяем, какой контекст будет использоваться для этого набора тестов — yii2tech\behat\Yii2MainContext.

Далее необходимо создать файлы сценариев в директории tests/functional/features. Пример такого файла может выглядеть следующим образом:

Feature: Login functionalityIn order to access my accountAs a registered userI want to be able to log inScenario: Successful loginGiven I am on "site/login"When I fill in "LoginForm[username]" with "admin"And I fill in "LoginForm[password]" with "password"And I press "login-button"Then I should see "Welcome, admin!"

В данном сценарии мы описываем функционал «Login functionality». В нем содержится один сценарий «Successful login», который проверяет успешность авторизации под пользователем admin с корректными данными.

Наконец, для выполнения тестов сценариев необходимо выполнить следующую команду в терминале:

./vendor/bin/behat

После выполнения тестов будет сгенерирован отчет о пройденных и не пройденных тестах, который можно просмотреть прямо в терминале.

Таким образом, Gherkin в Yii2 позволяет написать читаемые и понятные тестовые сценарии, которые помогают автоматизировать тестирование вашего приложения.

Преимущества Gherkin в Yii2

Преимущества использования Gherkin в Yii2 включают:

  • Простота и читаемость: Gherkin использует простую и понятную грамматику, что делает его легким для понимания как техническими, так и не техническими людьми.
  • Близость к бизнес-требованиям: Gherkin позволяет описывать функциональность приложения в терминах бизнес-требований, что помогает установить общее понимание между разработчиками, тестировщиками и заказчиками.
  • Автоматизация: Gherkin поддерживает автоматическое выполнение и проверку сценариев тестирования, что ускоряет процесс разработки и повышает уверенность в работоспособности приложения.
  • Расширяемость: Gherkin позволяет создавать собственные ключевые слова и шаги, что делает его гибким инструментом для адаптации под уникальные потребности проекта.

Все эти преимущества помогают упростить процесс тестирования в Yii2 и обеспечивают более надежное и качественное разработку приложений.

Установка и настройка Gherkin в Yii2

Для использования Gherkin в Yii2 необходимо выполнить следующие шаги:

1. Установите расширение Behat через Composer:

composer require behat/behat --dev

2. Добавьте Gherkin в качестве зависимости в ваш файл `composer.json`:

"require-dev": {"behat/gherkin": "4.6.*"}

3. Выполните команду `composer update` для установки зависимостей:

composer update

4. Создайте директорию `features` в корне вашего проекта:

mkdir features

5. Создайте файл `bootstrap.php` в директории `features` и добавьте следующий код:

<?phprequire_once 'vendor/autoload.php';

6. Создайте файл `behat.yml` в корне вашего проекта и добавьте следующий код:

default:autoload:"features/bootstrap.php"extensions:Behat\YiiExtension\Extension:applicationConfig: config/web.php

7. Теперь вы можете создавать файлы `.feature` в директории `features` и описывать тестовые сценарии с использованием Gherkin:

Feature: Пример использования Gherkin в Yii2Scenario: Авторизация пользователяGiven я открываю страницу "site/login"When я ввожу "admin" в поле "Логин"And я ввожу "password" в поле "Пароль"And я нажимаю на кнопку "Войти"Then я должен видеть "Добро пожаловать, admin"

8. Теперь, чтобы выполнить тесты Gherkin, выполните команду `./vendor/bin/behat` в корне вашего проекта:

./vendor/bin/behat

После запуска команды вы увидите результаты выполнения тестов в вашем терминале.

Структура Gherkin-файла

Gherkin-файл содержит несколько основных секций, которые определяют структуру и содержание сценария.

Фича: секция, которая определяет название и описание фичи, которую мы хотим протестировать.

Описание: в этой секции мы можем подробно описать требования и функциональность фичи.

Сценарий: секция, которая определяет конкретный сценарий тестирования, включающий шаги и ожидаемый результат.

Шаги: в каждом сценарии мы определяем шаги, которые выполняются при прохождении теста. Шаги могут быть предложениями на естественном языке, такими как «Дано», «Если», «Тогда» и «И».

Фон: секция, в которой мы определяем общий контекст для всех сценариев данной фичи. Фон используется, когда несколько сценариев имеют общие шаги.

Таблицы: таблицы могут использоваться для передачи данных в шагах. Они определяются с помощью символов «|» и «+».

Вот пример структуры Gherkin-файла:

Фича: Регистрация пользователяОписание: В качестве пользователей, мы должны иметь возможность зарегистрировать новый аккаунт.Сценарий: Успешная регистрацияДано пользователь находится на странице регистрацииКогда пользователь вводит свои данные| Имя     | Тест    || Фамилия | Тестер  || Email   | [email protected] || Пароль  | password123     |И пользователь нажимает кнопку "Зарегистрироваться"Тогда пользователь должен быть перенаправлен на страницу приветствияСценарий: Некорректные данныеДано пользователь находится на странице регистрацииКогда пользователь вводит свои данные| Имя     | Тест    || Фамилия | Тестер  || Email   | [email protected] |И пользователь нажимает кнопку "Зарегистрироваться"Тогда пользователь должен увидеть сообщение об ошибке

Структура Gherkin-файла играет важную роль при автоматизации тестирования и помогает упростить разработку и поддержку тестовых сценариев.

Синтаксис Gherkin-файла

Структура Gherkin-файла может быть представлена следующим образом:

  • Функционал (Feature): Определяет функциональность или возможности системы, которые будут тестироваться.
  • Разделитель (Scenario): Определяет отдельный тестовый сценарий.
  • Шаги (Steps): Определяют шаги, необходимые для выполнения тестового сценария.
  • Фразы (Keywords): Используются для описания шагов тестового сценария. Включают ключевые слова, такие как Given, When, Then, And, But.

Пример Gherkin-файла:

Функционал: Авторизация пользователяРазделитель: Успешная авторизацияДано пользователь находится на странице входаКогда пользователь вводит свои учетные данныеИ пользователь нажимает кнопку "Войти"То пользователь авторизован и перенаправлен на главную страницу

В данном примере, функционал «Авторизация пользователя» определяет тестирование процесса авторизации. Разделитель «Успешная авторизация» определяет конкретный тестовый сценарий. Шаги «Дано», «Когда», «И», «То» описывают действия, которые должны быть выполнены для успешной авторизации пользователя.

Использование и настройка Gherkin в Yii2 позволяют создавать понятные и структурированные тестовые сценарии, что упрощает тестирование и повышает читабельность кода.

Описание шагов и таблиц в Gherkin-файле

В Gherkin-файлах шаги описываются с помощью ключевых слов: Given, When, Then, And, But. Каждый шаг имеет свое ключевое слово, которое указывает на его роль в тестовом сценарии.

Примеры описания шагов:

Given пользователь авторизован в системеWhen пользователь открывает страницу "Профиль"Then отображается информация о пользователеGiven на странице "Профиль" есть поле "Имя"And поле "Имя" содержит значение "John"When пользователь изменяет значение поля "Имя" на "Mike"Then поле "Имя" содержит значение "Mike"

Таблицы используются для передачи параметров или данных в шагах. Они помогают организовать предоставление множества данных в удобном и понятном виде.

Пример таблицы:

Given на странице "Профиль" есть следующие поля:| Название     | Значение       || Имя          | John           || Возраст      | 30             || Email        | [email protected]  |When пользователь изменяет данные на странице "Профиль" следующим образом:| Название     | Значение       || Имя          | Mike           || Возраст      | 35             |Then данные на странице "Профиль" обновлены следующим образом:| Название     | Значение       || Имя          | Mike           || Возраст      | 35             |

Таким образом, описание шагов и таблиц в Gherkin-файле позволяет более четко и структурированно описывать тестовые сценарии, упрощая понимание и поддержку кода.

Использование переменных в Gherkin-файле

Переменные в Gherkin-файле позволяют вам определить значения, которые могут быть использованы в различных шагах или сценариях. Они могут быть использованы для передачи данных между шагами или для настройки параметров тестового сценария. Переменные обычно определяются в таблице в шаге Допустим и могут быть использованы с помощью конструкции <название переменной> в других шагах или сценариях.

Например, рассмотрим следующий Gherkin-файл:

Функционал: Создание нового пользователяКак администраторЯ хочу создать нового пользователяСценарий: Создание пользователя с заданными даннымиДопустим, что я захожу на страницу "Создать нового пользователя"Когда я ввожу "Имя пользователя" в поле "Имя"И я ввожу "Электронную почту" в поле "Почта"И я нажимаю кнопку "Сохранить"Тогда я должен видеть сообщение "Пользователь успешно создан"

В примере выше используются две переменные: «Имя пользователя» и «Электронная почта«. В шаге Допустим, значения для этих переменных могут быть указаны с помощью таблицы:

Допустим, что я захожу на страницу "Создать нового пользователя"| Имя пользователя | Электронная почта         || Админ             | [email protected] |

Теперь, когда эти значения определены, они могут быть использованы в других шагах или сценариях. Например, в шаге «Когда» значение переменной «Имя пользователя» может быть использовано как ввод в поле «Имя». В шаге «Тогда» значение переменной «Пользователя успешно создан» может быть использовано для проверки появления сообщения об успешном создании пользователя.

Использование переменных в Gherkin-файле делает его более гибким и легким для чтения и понимания. Оно позволяет настраивать и переиспользовать шаги, а также делать тестовые сценарии более динамичными и адаптивными к различным ситуациям.

Запуск тестов с использованием Gherkin в Yii2

Для запуска тестов с использованием Gherkin в Yii2 необходимо выполнить несколько шагов.

1. Установите необходимые зависимости, добавив их в файл «composer.json». Для использования Gherkin добавьте следующие строки:

"require-dev": {"codeception/codeception": "~2.5","codeception/gherkin": "~2.2","phpunit/phpunit": "~5.7","behat/gherkin": "~4.5"}

2. Запустите установку зависимостей командой:

composer install

3. Создайте файл тестовой сценария с расширением «.feature». Например, «example.feature». В этом файле опишите вашу тестовую сценарию на Gherkin.

Feature: Пример тестовой сценарииScenario: Поиск пользователя по имениGiven я нахожусь на главной страницеWhen я ввожу "Иван" в поле "Поиск"And я нажимаю кнопку "Поиск"Then я вижу "Иванов Иван" в списке результатов

4. Создайте класс теста, используя Codeception и реализуйте соответствующие шаги:

<?phpuse Codeception\Scenario;use Behat\Gherkin\Node\PyStringNode;use Behat\Gherkin\Node\TableNode;class ExampleCest{public function _before(Scenario $scenario){// Инициализация}public function _after(Scenario $scenario){// Завершение}/*** @Given я нахожусь на главной странице*/public function iAmOnTheHomePage(){// Шаги для перехода на главную страницу}/*** @When я ввожу :arg1 в поле :arg2*/public function iEnterInTheField($value, $field){// Шаги для ввода значения в поле}/*** @When я нажимаю кнопку :arg1*/public function iClickTheButton($button){// Шаги для нажатия на кнопку}/*** @Then я вижу :arg1 в списке результатов*/public function iSeeInTheResults($value){// Шаги для проверки значения в списке результатов}}

5. Запустите тесты с использованием Gherkin и Codeception командой:

vendor/bin/codecept run

После выполнения всех шагов, вы увидите результаты тестирования вашей тестовой сценарии, основанной на Gherkin в Yii2.

Отчеты и анализ результатов тестов с использованием Gherkin в Yii2

Отчет о выполнении тестов с использованием Gherkin обычно содержит следующую информацию:

1. Общая информация о тестировании:

  • Дата и время запуска тестов;
  • Общее количество пройденных и проваленных тестов;
  • Общее время, затраченное на выполнение тестов.

2. Детальная информация о каждом сценарии тестирования:

  • Название сценария и его описание;
  • Шаги тестирования, описанные на Gherkin;
  • Результат выполнения каждого шага (пройден или провален);
  • Информация об ошибках (если таковые возникли).

3. Анализ результатов тестирования:

  • Общая статистика выполнения тестов (количество пройденных и проваленных тестов);
  • Статистика выполнения каждого сценария (количество пройденных и проваленных шагов);
  • Сводная таблица с результатами выполнения каждого шага тестирования.

Анализ результатов тестирования позволяет выявить слабые места в функциональности системы и скорректировать их. Отчет, созданный с использованием Gherkin в Yii2, облегчает процесс анализа результатов тестирования и помогает улучшить качество разрабатываемого программного обеспечения.

Для удобства анализа отчетов можно использовать специальные инструменты, предоставляемые Yii2. Они позволяют сгруппировать результаты тестирования по категориям, отобразить графики выполнения тестов и провести детальное сравнение результатов.

Добавить комментарий

Вам также может понравиться