Pytest实战UI测试框架2

步骤渐进

用例之间不应相互依赖,如果部分用例拥有相同的业务流程,如都需要,打开登录页->登录->点击添加商品菜单->进入添加商品页面

不建议使用以下方式,并使其按顺序执行。

def test_login():

...

def test_click_menu():

...

def test_add_goods():

...

建议对公共的步骤进行封装,可以使用Fixture方法的相互调用来实现步骤渐进,示例如下。

# conftest.py

import pytest

from pages.login_page import LoginPage

from pages.menu_page import MenuPage

from pages.add_goods_page import AddGoodsPage

@pytest.fixture(scope='session')

def login_page(selenium):

return LoginPage(selenium)

@pytest.fixture(scope='session')

def menu_page(selenium, login_page):

"""登录后返回菜单页面"""

login_page.login('默认用户名', '默认密码') # 也可以从数据文件或环境变量中读取

return MenuPage(selenium)

@pytest.fixture(scope='session')

def add_goods_page(selenium, menu_page):

"""从MenuPage跳到添加商品页面"""

menu_page.click_menu('商品管理', '添加新商品')

return AddGoodsPage(selenium)

# test_ecshop.py

def test_login(login_page):

login_page.login('测试用户名', '测试密码')

assert login_page.get_login_fail_msg() is None

def test_add_goods(add_goods_page):

联系作者longtestyan

Pytest实战UI测试框架2


分享到:


相關文章: