本文主要总结的是pytest中的前置后置怎么返回参数
我们在做自动化的过程中,如果运用的是pytest的话,会遇到怎么使用前置条件中的变量
比如:
@pytest.fixture() def init_driver(): driver = webdriver.Chrome() login = LoginPageOperation(driver) home = HomePageOperation(driver) driver.get(common_datas.login_url) driver.maximize_window() yield driver.quit()
在这个前置中,我们怎么使用这个driver、login、home呢?
其实我们透过本质来看,这个前置后置本身是一个函数,既然是函数,那么肯定是可以有返回值的,那么问题来了,这个返回值应该在哪里呢?
请看代码:
@pytest.fixture() def init_driver(): driver = webdriver.Chrome() login = LoginPageOperation(driver) home = HomePageOperation(driver) driver.get(common_datas.login_url) driver.maximize_window() yield driver, login, home driver.quit()
以上标价的地方就是我增加的地方,可以看出这个返回值是跟在yield后面的,而且这个返回值我现在是写的是一个元祖,所有在调用的时候就还能根据索引来调用了,例如:
@pytest.fixture() def init_driver(): driver = webdriver.Chrome() login = LoginPageOperation(driver) home = HomePageOperation(driver) driver.get(common_datas.login_url) driver.maximize_window() yield driver, login, home driver.quit() class TestLogin: @pytest.mark.usefixtures("init_driver") def test_success_login(self, init_driver): """ 登录成功测试用例 """ init_driver[1].login(test_login_datas.login_success_data["name"], test_login_datas.login_success_data["passwd"]) assert(init_driver[-1].logout_text())
d