HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Говоря о возможностях Pytest, нельзя не вспомнить про<strong>Pytest-BDD,</strong>представляющий собой, по сути, полноценный инструмент автоматизации тестирования. Pytest-BDD - это вариация таких популярных фреймворков, как Cucumber либо Behave, однако Pytest-BDD сам по себе, поэтому его иногда называют<strong>Python Cucumber</strong>.</p>
1 <p>Говоря о возможностях Pytest, нельзя не вспомнить про<strong>Pytest-BDD,</strong>представляющий собой, по сути, полноценный инструмент автоматизации тестирования. Pytest-BDD - это вариация таких популярных фреймворков, как Cucumber либо Behave, однако Pytest-BDD сам по себе, поэтому его иногда называют<strong>Python Cucumber</strong>.</p>
2 <p>Вообще, BDD является довольно популярным подходом, который распространен среди различных команд, как опытных, так и тех, кто впервые работает с автоматизацией тестирования. Ключевая особенность BDD заключается в создании так называемых<strong>фича-файлов</strong>. При этом используется специальный синтаксис,<strong>Gherkin</strong>. Этот синтаксис дает возможность описывать фичи в следующем формате:</p>
2 <p>Вообще, BDD является довольно популярным подходом, который распространен среди различных команд, как опытных, так и тех, кто впервые работает с автоматизацией тестирования. Ключевая особенность BDD заключается в создании так называемых<strong>фича-файлов</strong>. При этом используется специальный синтаксис,<strong>Gherkin</strong>. Этот синтаксис дает возможность описывать фичи в следующем формате:</p>
3 <p>Далее превращаем это в компьютерный код с последующим выполнением.</p>
3 <p>Далее превращаем это в компьютерный код с последующим выполнением.</p>
4 <p>Такие "фича-файлы" могут создавать любые члены команды. Таким образом новые фичи документируются посредством запуска тест-кода, что упрощает тестовую коммуникацию.</p>
4 <p>Такие "фича-файлы" могут создавать любые члены команды. Таким образом новые фичи документируются посредством запуска тест-кода, что упрощает тестовую коммуникацию.</p>
5 <p>Но давайте посмотрим, как это работает с Pytest-BDD. Начнем с фича-файла, созданного по синтаксису Gherkin. Не будем далеко уходить от темы интернет-магазина и назовем нашу фичу<em>store_login.feature</em>. Она станет описывать, каким образом функционируют 2 специфических потока авторизации: невалидный и валидный:</p>
5 <p>Но давайте посмотрим, как это работает с Pytest-BDD. Начнем с фича-файла, созданного по синтаксису Gherkin. Не будем далеко уходить от темы интернет-магазина и назовем нашу фичу<em>store_login.feature</em>. Она станет описывать, каким образом функционируют 2 специфических потока авторизации: невалидный и валидный:</p>
6 <p>Давайте учтем, что это, по сути, описательные сценарии. Идея заключается в том, что фичи могут создаваться не напрямую разработчиками тестов, а посредством коммуникации с дизайнерами, продактами и прочими заинтересованными членами команды.</p>
6 <p>Давайте учтем, что это, по сути, описательные сценарии. Идея заключается в том, что фичи могут создаваться не напрямую разработчиками тестов, а посредством коммуникации с дизайнерами, продактами и прочими заинтересованными членами команды.</p>
7 <p>Давайте глянем на внедрение наших шагов. Теперь тест-разработчик может создать файл<em>test_store_login.py</em>приблизительно следующего содержания:</p>
7 <p>Давайте глянем на внедрение наших шагов. Теперь тест-разработчик может создать файл<em>test_store_login.py</em>приблизительно следующего содержания:</p>
8 <p>Это показывает нам, как именно мы можем использовать BDD и шаги, описанные Gherkin, продолжая в то же время использовать известные Pytest-конструкции (фикстуры, добавление test_ к файлам для исполнения). При необходимости код можно доработать, к примеру, задействовав паттерн Page Object либо совместив шаги, но наша задача - подчеркнуть BDD-аспект данного сценария.</p>
8 <p>Это показывает нам, как именно мы можем использовать BDD и шаги, описанные Gherkin, продолжая в то же время использовать известные Pytest-конструкции (фикстуры, добавление test_ к файлам для исполнения). При необходимости код можно доработать, к примеру, задействовав паттерн Page Object либо совместив шаги, но наша задача - подчеркнуть BDD-аспект данного сценария.</p>
9 <p>Чтобы выполнить тест, можно вызвать<em>pytest test_store_login.py</em>, в результате чего мы увидим результат. Кроме того, Pytest-BDD сгенерирует полезные отчеты в стиле Cucumber, что произойдет в дополнение к стандартной Pytest-отчетности. Также в шагах Gherkin доступны регулярные выражения и замещения.</p>
9 <p>Чтобы выполнить тест, можно вызвать<em>pytest test_store_login.py</em>, в результате чего мы увидим результат. Кроме того, Pytest-BDD сгенерирует полезные отчеты в стиле Cucumber, что произойдет в дополнение к стандартной Pytest-отчетности. Также в шагах Gherkin доступны регулярные выражения и замещения.</p>
10 <p><em>Источник: https://simplythetest.tumblr.com/post/189048770415/pytest-the-awesome-parts-pytest-bdd.</em></p>
10 <p><em>Источник: https://simplythetest.tumblr.com/post/189048770415/pytest-the-awesome-parts-pytest-bdd.</em></p>
11  
11