两个用例使用同一个contest.py里的浏览器
时间: 2023-12-12 21:02:40 浏览: 34
要使两个测试用例使用同一个浏览器实例,可以在pytest的conftest.py文件中定义一个fixture方法,例如名为browser的方法,在该方法中初始化浏览器实例,并返回该实例。然后在需要使用浏览器的测试方法上使用@pytest.mark.usefixtures('browser')装饰器,将该测试方法与fixture方法关联起来。
下面是一个示例代码:
```python
import pytest
from selenium import webdriver
@pytest.fixture(scope="session")
def browser():
driver = webdriver.Chrome() # 初始化浏览器实例,此处以Chrome为例
yield driver # 返回浏览器实例
driver.quit() # 在所有测试用例执行完毕后,关闭浏览器
```
在conftest.py文件中定义了一个作用域为session的fixture方法browser。在该方法中,初始化了一个Chrome浏览器实例,并返回该实例。使用了yield关键字来实现在测试之前和之后的操作。在测试方法上使用@pytest.mark.usefixtures('browser')装饰器,将测试方法与fixture方法关联起来。这样,在执行这两个测试方法时,会先执行fixture方法,获取到同一个浏览器实例,并在所有测试用例执行完毕后关闭浏览器。
注意:conftest.py文件需要与测试用例文件在同一个目录下,并且文件名必须为conftest.py。这样pytest会自动加载该文件中定义的fixture方法。