Отчеты могут отображать множество различных типов предоставленных вложений, которые могут дополнять результаты теста, шага или прибора. Вложения могут быть созданы либо с помощью 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
)
Добавление скриншота удобно применять для сохранения скриншота в отчёт при поломке теста