pytest使用fixture实现setup和teardown

import pytest
import time
from selenium import webdriver

@pytest.fixture(scope="function",autouse=True)   #fixture的使用范围为方法级,每个方法之前之后都会运行它,并且自动使用
def foo():
    print("function setup")
    driver = webdriver.Chrome()
    driver.get('https://www.baidu.com')

    yield 100

    print("function teardown")
    time.sleep(5)
    driver.close()




def test_answer_1():
    print("函数正在执行")
    assert 4 == 5


if __name__ == '__main__':
    pytest.main()

被pytest.fixture装饰的函数foo,yield返回100,yield前的语句会在被测函数执行前执行,yield后的语句会在被测函数执行后执行。所以上面代码的执行顺序是先调用webdriver打开百度,然后执行test_answer_1函数,最后再执行关闭浏览器的操作

你可能感兴趣的:(自动化测试)