> 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/vlozheniya-attach.md).

# Вложения(attach)

Отчеты могут отображать множество различных типов предоставленных вложений, которые могут дополнять результаты теста, шага или прибора. Вложения могут быть созданы либо с помощью `allure.attach(body, name, attachment_type, extension)`:

1. `body`- необработанный контент для записи в файл.
2. `name`- строка с именем файла
3. `attachment_type`- одно из `allure.attachment_type`значений
4. `extension`- будет использоваться в качестве расширения для созданного файла.

Или `allure.attach.file(source, name, attachment_type, extension)`:

1. `source`- строка, содержащая путь к файлу.

(остальные аргументы те же)

```
import allure
import pytest


@pytest.fixture
def attach_file_in_module_scope_fixture_with_finalizer(request):
    allure.attach('A text attacment in module scope fixture', 'blah blah blah', allure.attachment_type.TEXT)
    def finalizer_module_scope_fixture():
        allure.attach('A text attacment in module scope finalizer', 'blah blah blah blah',
                      allure.attachment_type.TEXT)
    request.addfinalizer(finalizer_module_scope_fixture)


def test_with_attacments_in_fixture_and_finalizer(attach_file_in_module_scope_finalizer):
    pass


def test_multiple_attachments():
    allure.attach.file('./data/totally_open_source_kitten.png', attachment_type=allure.attachment_type.PNG)
    allure.attach('<head></head><body> a page </body>', 'Attach with HTML type', allure.attachment_type.HTML)
```

Вложения отображаются в контексте тестового объекта, которому они принадлежат. Вложения типа HTML рендерятся и отображаются на странице отчета. Это удобный способ настроить собственное представление результатов теста.<br>

![](https://2199266820-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjLS7kUc1aR2S56nZreKO%2Fuploads%2F40ZChLSHzDZ2dfuIJhig%2Fimage.png?alt=media\&token=0ed524d8-f879-4666-9cf9-1603afd897fb)

### Несколько способов загрузить скриншот:

1. Отправка скриншота по пути:

```
allure.attach(
    "screenshot.png", 
    name = 'screenshot', 
    attachment_type = allure.attachment_type.PNG
)
```

2\. Отправка скрина напрямую из драйвера:

```
from allure_commons.types import AttachmentType

allure.attach(
    self.driver.get_screenshot_as_png(), 
    name="Screenshot", 
    attachment_type=AttachmentType.PNG
)
```

Добавление скриншота удобно применять для сохранения скриншота в отчёт при поломке теста

```
def tearDown(self):    
    if self.has_exception():        
        allure.attach(
            self.driver.get_screenshot_as_png(), 
            attachment_type = AttachmentType.PNG
        )    
        
    self.driver.quit()
```
