pytest中怎么引用前置中的变量

本文主要总结的是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

猜你喜欢

转载自www.cnblogs.com/LCboss/p/12027977.html
今日推荐