Вложения(attach)
Отчеты могут отображать множество различных типов предоставленных вложений, которые могут дополнять результаты теста, шага или прибора. Вложения могут быть созданы либо с помощью allure.attach(body, name, attachment_type, extension)
:
body
- необработанный контент для записи в файл.name
- строка с именем файлаattachment_type
- одно изallure.attachment_type
значенийextension
- будет использоваться в качестве расширения для созданного файла.
Или allure.attach.file(source, name, attachment_type, extension)
:
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 рендерятся и отображаются на странице отчета. Это удобный способ настроить собственное представление результатов теста.

Несколько способов загрузить скриншот:
Отправка скриншота по пути:
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()
Last updated
Was this helpful?