conftest报告截图代码
时间: 2023-07-02 07:21:12 浏览: 188
下面是一个使用 pytest 和 pytest-allure-adaptor 生成 Allure 报告并保存截图的例子:
1. 安装 pytest 和 pytest-allure-adaptor
```
pip install pytest
pip install pytest-allure-adaptor
```
2. 在项目根目录下创建 `conftest.py` 文件,并添加如下代码:
```python
import allure
from selenium import webdriver
@pytest.fixture(scope='function')
def driver():
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--disable-gpu')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome(options=options)
yield driver
driver.quit()
@allure.step('保存截图')
def save_screen_shot(driver, picture_name):
allure.attach(driver.get_screenshot_as_png(), picture_name, allure.attachment_type.PNG)
@pytest.fixture(autouse=True)
def screenshot_on_failure(request, driver):
yield
if request.node.rep_call.failed:
picture_name = request.node.name + '.png'
save_screen_shot(driver, picture_name)
```
3. 运行测试用例并生成 Allure 报告
```
pytest --alluredir=./result
```
4. 生成 Allure 报告
```
allure generate ./result -o ./report --clean
```
5. 打开报告
```
allure open -h 127.0.0.1 -p 8080 ./report
```
这个例子中,我们使用了 Selenium WebDriver 来进行自动化测试,并且在 `conftest.py` 中定义了一个 `driver` fixture 来管理浏览器的生命周期。另外,我们还定义了一个 `screenshot_on_failure` fixture,并使用 `@allure.step` 装饰器来保存截图。最后,我们使用 pytest 和 pytest-allure-adaptor 来生成 Allure 报告,并打开报告。
阅读全文