pytest框架--pytest前置和后置


一、pytest优势

  • 可以和selenium、requests、appium结合实现web自动化、接口自动化、APP自动化
  • 可跳过用例且失败用例可重跑
  • 结合allure生成美观的测试报告
  • 与Jenkins实现持续集
  • 有丰富的插件
    pytest-xdist 多线程运行
    pytest-ordering 改变测试用例执行顺序
    pytest-rerunfailures 失败用例重跑
    allure-pytest 生成allure测试报告

二、pytest前后置

1、setup/teardown 每个用例之前、之后执行一次
2、setup_class/teardown_class 每个类之前、之后执行一次

3、@pytest.fixture(scope=“作用域”,params=“数据驱动”,autouse=“自动执行”,ids=“自定义参数名”,name=“重命名”)

作用域:
function 函数级别
class 类级别
module 模块级别
session  会话级别
autouse:
True 自动执行
False 需要调用才执行

示例代码:

@pytest.fixture(scope="function",params=MySqlDB)
def get_resrc_id_fixture():
    '''获取数据源的id前置'''
    dbinfo = {
        "host": MySqlDB[0]["MySqlDB"]["host"],
        "user": MySqlDB[0]["MySqlDB"]["user"],
        "password": MySqlDB[0]["MySqlDB"]["mysql_psw"],
        "port": MySqlDB[0]["MySqlDB"]["port"]
    }
    db = DbConnect(db_cof=dbinfo, database="aio")
    select_sql = "select * from aio_resource where resrc_name='mysql数据源';"
    result = db.select(select_sql)
    print(result)
    id = result[0]["id"]
    return id

注意:

  • @pytest.fixture()一般与conftest.py一起使用
  • conftest.py名称是固定的,不可改变
  • conftest.py单独存放@pytest.fixture()方法,可以在多个py文件之间实现前置的共享
  • conftest.py里的方法不需导入,可直接使用
  • conftest.py可以有多个,可有多个不同层级
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值