Pytest实战UI测试框架

步骤渐进

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

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


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):

联系作者:xiaowanzi02620

图片发自简书App
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容