• pytest-fixture之conftest.py


    简介

    fixture优势

    fixture相对于setup和teardown的优势

        1、命名方式灵活,不局限于setup和teardown这几个命名
    2、contest.py配置可以实现数据共享,不需要import就能自动寻找一些配置
    3、scope = "module" 可以实现多个 .py跨文件共享前置,每一个.py文件调用一次
    4、scope = "session" 可以实现多个.py文件使用一个session来完成多个用例

    fixture(scope ="function", params=None, autouse=False, ids=None, name=None)
        """
        使用装饰器标记fixture的功能,fixture功能的名称可以在以后使用
         引用它会在运行测试之前调用它:test模块或类可以使用pytest.mark.usefixtures(fixturename标记。
         测试功能可以直接使用fixture名称作为输入参数,在这种情况下,夹具实例从fixture返回功能将被注入。
        """
        :scope 有四个参数:function(默认), class, moudle, session
        :params 一个可选的参数列表,他将导致多个参数调用fixture功能和所有测试使用它
        :autouse  如果True,则所有测试激活fixtrue func可以看到他
        :ids 每个字符串id列表,每个字符穿对应于params,这样他们就是测试id的一部分,如果没有提供id他们将从params自动生成
        :name fixture名称
    

      代码笔记

    conftest.py配置

    问题:如果多个py文件都需要调用登录功能,所以不需要把功能写在用例中,需要单独写配置文件,操作
    
    conftest.py配置
    :conftest.py配置脚本名称是固定,不能修改名称
    :conftest.py与运行的用例要在同一个pakage下,并且有__init__.py文件
    :不需要导入conftest.py,pytest用例会自动查找
    

      

    conftest.py
        import pytest
    
        @pytest.fixture()
        def login():
            print("输入账号,密码先登录")
    
    test_fix1.py
        import pytest
        
        def test_s1(login):
            print("用例1:登录之后其它动作111")
        
        def test_s2():  # 不传login
            print("用例2:不需要登录,操作222")
        
        def test_s3(login):
            print("用例3:登录之后其它动作333")
        
        if __name__ == "__main__":
            pytest.main(["-s", "test_fix1.py"])
    

      

  • 相关阅读:
    .请写出常用的linux指令
    Maven常用命令有哪些
    Maven的工程类型有哪些
    eclipse中Build Path 导入的包和复制到 lib 包的区别
    马踏棋盘算法递归+回溯法实现 C语言
    微信开发之移动手机WEB页面(HTML5)Javascript实现一键拨号及短信发送功能
    Android_保存用户名和密码码sharedPreference
    Android---XML序列化
    直接拿来用!最火的Android开源项目
    异步http开源框架使用(AsyncHttpClient)
  • 原文地址:https://www.cnblogs.com/jiliangceshi/p/14137057.html
Copyright © 2020-2023  润新知