web ui自动化框架搭建(六)

使用conftest.py管理login操作

当testcase文件下有多个测试用例文件(test_.py)的所有用例都需要用登录功能来作为前置操作,那每个test_.py都有加 setup_module()、 teardown_module(),同样造成代码重复。此时,可使用conftest.py存放所有全局通用的方法,单独管理一些全局的fixture。

conftest.py配置fixture注意事项

  • pytest会默认读取conftest.py里面的所有fixture conftest.py 文件名称是固定的,不能改动
  • conftest.py只对同一个package下的所有测试用例生效
  • 不同目录可以有自己的conftest.py,一个项目中可以有多个conftest.py 测试用例文件中不需要手动import
  • conftest.py,pytest会自动查找

登录放入conftest.py,源码如下:

import pytest

from common.browser import SelectBrowser
from page.login import Login


#scope='session',session 是多个文件调用一次,可以跨.py文件调用,每个.py文件就是module
@pytest.fixture(scope='session', autouse=True)
def login(request):
    driver = SelectBrowser.open_brower("firefox")
    t = Login(driver)
    t.manage_login("test", "test")

    def fn():
        driver.quit()
    request.addfinalizer(fn)

    return driver

测试用例文件也要进行更改,调用conftest.py的login fixture

from common.browser import SelectBrowser
from page.login import login, Login
from  page.adPosterManage import ADPostMangeger
import  pytest

driver = SelectBrowser.open_brower("firefox")
# def setup_module():
#     """每个模块前执行都需要登录"""
#     t = Login(driver)
#     t.manage_login("admin", "admin")

def test_add_ad_success(login):
    """资源位添加成功"""

    ad = ADPostMangeger(login)
    ad_text = ad.test_add_ad(advertName='资源位置1103', start_time="2021-11-03 00:00:00",
                             end_time="2021-12-03 00:00:00", route_value='1737', sort_value='100',
                             pic_path="D:\\0testpic\ABS纯色图\\1.png")
    assert ad_text=='资源位置1103'

def test_add_ad_faild(login):
    """资源位置必填校验,添加失败"""
    ad = ADPostMangeger(login)
    ad_text = ad.test_add_ad(advertName='', start_time="2021-11-03 00:00:00",
                             end_time="2021-12-03 00:00:00", route_value='1737', sort_value='100',
                             pic_path="D:\\0testpic\ABS纯色图\\1.png")
    assert ad_text!='资源位置1103'
# def teardown_module():
#     """每个模块执行完成后都需要关闭浏览器"""
#     driver.quit()

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值