前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PlayWright(二十)- Pytest之conftest文件

PlayWright(二十)- Pytest之conftest文件

作者头像
似小陈吖
发布2023-10-17 10:00:47
3160
发布2023-10-17 10:00:47
举报
文章被收录于专栏:测试那些事测试那些事

1、介绍与使用场景

conftest.py 这个是什么呢?

顾名思义,他就是一个文件,那这个文件是干什么用的呢?

在我们上文中,用了fixture函数是直接在用例的文件里定义的,那不能我们所有的用例想用到fixture都一个个定义吧,所以Pytest提供了一个conftest.py文件,这样呢,就可以把我们的fixture函数存放到这里

有人会问,我们用这个,具体可以干啥呢?

举个例子,我们做ui自动化,首先第一步会登录获取token,然后接着其他操作,在其他操作前都有登录这个功能,所以其他操作就是一个个用例函数,而登录获取token就可以前置,然后使用fixture函数,那这个函数就可以用到conftest.py文件

当然,既然是别人封装好的功能,那肯定有对应的规则,conftest.py文件也有他的规则

  • conftest.py文件名字是固定的,不可以做任何修改
  • conftest.py文件和用例文件在同一个目录下,那么conftest.py作用于整个目录
  • conftest.py文件所在目录必须存在__init__.py文件
  • conftest.py文件不能被其他文件导入
  • 所有同目录测试文件运行前都会执行conftest.py文件

还要补充两点:

1、不同目录可以有自己的conftest.py,一个项目中可以有多个conftest.py

2、pytest会自动查找项目中的conftest.py文件,逐层往上查找

2、实战环节

我们还是直接看实战吧

首先创建目录:

conftest.py文件代码:

代码语言:javascript
复制
import pytests
@pytest.fixture(scope='class')
def set():
    print("用例前的登录操作")

test_01.py文件代码:

代码语言:javascript
复制
class Test_Demo1():

    def test_01(self, set):
        print('用例-搜索功能执行')

    def test_02(self, set):
        print('用例-输入功能执行')

test_02.py文件代码:

代码语言:javascript
复制
class Test_Demo1():

    def test_01(self, set):
        print('用例-购买功能执行')

这里在做实战的时候,作者犯了两个错误:

第一个没有__init__文件

第二个是没有在用例函数中引入fixture参数名

我们执行下结果看下:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-07-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、介绍与使用场景
  • 2、实战环节
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档