> For the complete documentation index, see [llms.txt](https://igor-19.gitbook.io/qa/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://igor-19.gitbook.io/qa/avtomatizaciya-testirovaniya/python/allure-python/dekoratory/shagi-step.md).

# Шаги(step)

Первый и вероятно, самый важный аспект отчета Allure заключается в том, что он позволяет получить очень подробное пошаговое представление каждого запуска теста. Это стало возможным благодаря `@allure.step`декоратору, который добавляет в отчет вызов аннотированного метода или функции с предоставленными аргументами.

Аннотированные методы `@step`можно хранить отдельно от ваших тестов и просто импортировать при необходимости. Пошаговые методы могут иметь сколь угодно глубокую вложенную структуру.

Можно использовать в качестве декораторов. По умолчанию имя шага генерируется из имени метода:

```
import nose

@nose.allure.step
def make_test_data_foo():
    # do stuff

def test_foo():
    assert make_some_data_foo() is not None

@nose.allure.step('make_some_data_foo')
def make_some_data_bar():
    # do another stuff

def test_bar():
    assert make_some_data_bar() is not None
```

Чтобы разделить тест на этапы:

```
import nose

def test_foo():
    with nose.allure.step('step one'):
        # do stuff

    with nose.allure.step('step two'):
        # do more stuff
```

Ещё можно использовать без `nose`

```
import allure

def test_foo():
    with allure.step('step one'):
        # do stuff

    with allure.step('step two'):
        # do more stuff
```

Статус каждого шага отображается маленькой иконкой слева от названия. Вложенные шаги организованы в виде древовидной складной структуры.

![](https://2199266820-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjLS7kUc1aR2S56nZreKO%2Fuploads%2Fm8nb8MyZnSrrD7EeOJYL%2Fimage.png?alt=media\&token=0d63c5d5-cb78-4b9c-9b73-65110e681217)
