UI测试pytest的基类怎么写
时间: 2023-11-02 09:40:40 浏览: 34
在pytest中编写UI测试的基类可以通过使用`pytest`提供的fixture和hook机制实现。下面是一个示例的UI测试基类的代码:
```python
import pytest
from selenium import webdriver
# 定义UI测试的基类
@pytest.fixture(scope="class")
def base_ui_test(request):
# 在测试类开始时执行的操作
driver = webdriver.Chrome() # 实例化WebDriver,这里以Chrome为例
request.cls.driver = driver # 将WebDriver对象保存到测试类中
yield
# 在测试类结束时执行的操作
driver.quit()
# 定义一个UI测试的基类
@pytest.mark.usefixtures("base_ui_test")
class BaseUITest:
pass
```
在上述代码中,我们使用了`pytest.fixture`装饰器定义了一个作用域为`class`的fixture函数`base_ui_test`。这个fixture函数将在每个测试类开始前执行一次,并在测试类结束后执行一次。
然后,我们使用`@pytest.mark.usefixtures`装饰器将定义好的fixture函数应用到我们的基类`BaseUITest`上。
接下来,你可以创建其他UI测试类,并继承自`BaseUITest`基类。这样,每个继承了`BaseUITest`的测试类都会自动拥有一个`driver`属性,可以在测试方法中使用该属性进行UI操作。
```python
class TestLoginPage(BaseUITest):
def test_login_successful(self):
# 使用self.driver进行页面操作和断言
pass
def test_login_failed(self):
# 使用self.driver进行页面操作和断言
pass
```
通过这种方式,你可以在UI测试中共享`driver`对象,并在每个测试类开始前和结束后执行一些操作,例如启动和关闭浏览器。这样可以提高测试代码的可维护性和复用性。当然,你可以根据实际需求进行定制和扩展。