Pytest-BDD 中,每一个scenario,记录每一次 scenario动图
时间: 2024-04-19 07:28:48 浏览: 309
在 Pytest-BDD 中,你可以使用 `pytest-html` 插件来生成测试报告,并且该插件支持录制每个 scenario 的动图。下面是一个示例的 `pytest.ini` 文件和使用 `pytest.mark.record_tests` 装饰器来记录动图的示例代码:
首先,在项目根目录下创建一个 `pytest.ini` 文件,并添加以下内容:
```ini
[pytest]
addopts = --html=report.html
```
接下来,在你的测试文件中,你可以使用 `pytest.mark.record_tests` 装饰器来记录每个 scenario 的动图。示例代码如下:
```python
import pytest
from pytest_bdd import scenarios, given, when, then
from selenium import webdriver
# 定义 scenarios
scenarios('path/to/feature_file.feature')
@pytest.fixture(scope='session')
def browser():
# 在整个测试会话期间启动浏览器
driver = webdriver.Chrome()
yield driver
driver.quit()
@given('I am on the home page')
def step_given(browser):
browser.get('https://www.example.com')
@when('I click on the button')
def step_when(browser):
button = browser.find_element_by_id('button-id')
button.click()
@then('I should see the result')
def step_then(browser):
result = browser.find_element_by_id('result-id')
assert result.text == 'Expected Result'
@pytest.mark.record_tests
def test_scenario():
pass
```
在上面的示例代码中,我们使用 `pytest.mark.record_tests` 装饰器来标记测试函数 `test_scenario`。当运行测试时,`pytest-html` 插件会生成一个名为 `report.html` 的测试报告,并且会记录每个被标记的测试函数的动图。
确保你已经安装了 `pytest`、`pytest-bdd` 和 `pytest-html` 这些依赖。然后,在命令行中运行 `pytest` 命令,它将运行你的测试并生成测试报告,其中包含所有标记为 `record_tests` 的 scenario 的动图。
阅读全文