Как задать два идентификатора для одного теста в Allure?

Каким образом можно указать несколько идентификаторов тестов из Allure в автотесте, если помимо этого идет применение автоматизации для нескольких ручных тестов в Allure, что нарушает стандартное соответствие "один автотест = один тест"? Требуется пример на Python + Playwright + Allure или TypeScript + Playwright + Allure, если доступен.
  • 19 января 2024 г. 10:12
Ответы на вопрос 1
Allure Test Framework предоставляет множество различных декораторов и аннотаций для добавления метаданных к тестам, таких как теги, ссылки, и, что наиболее важно для вашего вопроса, идентификаторы. В Allure, идентификаторы тестов могут быть представлены в виде аннотаций или декораторов, которые соотносят автоматические тесты с соответствующими тест-кейсами в тест-менеджмент системах.

В Python вы можете использовать библиотеку `allure-pytest` для работы с Allure в связке с фреймворком Pytest, который часто используется вместе с Playwright для автоматизации тестов.

Вот пример кода на Python с использованием Pytest и Playwright показывающий, как можно задать два идентификатора для одного теста:

```python
import allure
from playwright.sync_api import sync_playwright

@allure.testcase('http://testcase_url_1.com', 'Test Case 1')
@allure.testcase('http://testcase_url_2.com', 'Test Case 2')
def test_example_with_multiple_ids():
    with sync_playwright() as p:
        browser = p.chromium.launch()
        page = browser.new_page()
        page.goto('https://example.com')
        # Тут ваш тестовый код
        browser.close()

# Запускаем тест
test_example_with_multiple_ids()
```

В приведенном примере, мы задаем два различных идентификатора тест-кейсов через декоратор `@allure.testcase`, где первый параметр - это ссылка на тест-кейс, а второй параметр - это имя тест-кейса.

Для TypeScript/JavaScript и Playwright с Allure в данном случае возможно, используя `allure-js-commons` и `allure-playwright`. Но из-за асинхронной природы JavaScript, реализация может потребовать дополнительных оберток или кастомных функций. На момент знания крайнего срока (2023 год), такие возможности не предоставлены "из коробки" и могут потребовать самописной интеграции.

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