如何使用 python 添加屏幕截图到诱惑报告?
How to add a screenshot to allure report with python?
我有这个代码:
# coding: utf-8
from selenium import webdriver
import pytest
import allure
@pytest.yield_fixture(scope='session')
def driver():
_driver = webdriver.PhantomJS()
yield _driver
_driver.quit()
def test_ya(driver):
with allure.step('open ya.ru and take screenshot'):
driver.get('http://ya.ru/')
allure.attach('screenshot', driver.get_screenshot_as_png(), type='png')
然后我尝试截屏并保存到诱惑报告中,
执行后我有:
> with self._attachfile("%s-attachment.%s" % (uuid.uuid4(), attach_type.extension)) as f:
if isinstance(body, text_type):
E AttributeError: 'str' object has no attribute 'extension'
我该如何解决这个问题?
而不是将 type
设置为字符串 png
,您需要使用 allure
module attachment type constant,这是一个 Enum
,定义了 extension
属性:
from allure.constants import AttachmentType
allure.attach('screenshot', driver.get_screenshot_as_png(), type=AttachmentType.PNG)
为了诱惑2
from allure_commons.types import AttachmentType
allure.attach(driver.get_screenshot_as_png(), name="Screenshot", attachment_type=AttachmentType.PNG)
在您的 conftest.py 中添加以下内容,确保您也已经有一个驱动夹具:
codeblock
我有这个代码:
# coding: utf-8
from selenium import webdriver
import pytest
import allure
@pytest.yield_fixture(scope='session')
def driver():
_driver = webdriver.PhantomJS()
yield _driver
_driver.quit()
def test_ya(driver):
with allure.step('open ya.ru and take screenshot'):
driver.get('http://ya.ru/')
allure.attach('screenshot', driver.get_screenshot_as_png(), type='png')
然后我尝试截屏并保存到诱惑报告中, 执行后我有:
> with self._attachfile("%s-attachment.%s" % (uuid.uuid4(), attach_type.extension)) as f:
if isinstance(body, text_type):
E AttributeError: 'str' object has no attribute 'extension'
我该如何解决这个问题?
而不是将 type
设置为字符串 png
,您需要使用 allure
module attachment type constant,这是一个 Enum
,定义了 extension
属性:
from allure.constants import AttachmentType
allure.attach('screenshot', driver.get_screenshot_as_png(), type=AttachmentType.PNG)
为了诱惑2
from allure_commons.types import AttachmentType
allure.attach(driver.get_screenshot_as_png(), name="Screenshot", attachment_type=AttachmentType.PNG)
在您的 conftest.py 中添加以下内容,确保您也已经有一个驱动夹具:
codeblock