• pytest:conftest.py文件


    一、fixture scope 为session 级别是可以跨 .py模块调用的,也就是当我们有多个 .py文件的用例时,如果多个用例只需调用一次fixture,可以将scope=‘session’,并且写到conftest.py文件里。写到conftest.py文件可以全局调用这里面的方法。使用的时候不需要导入conftest.py文件。使用conftest.py的规则:

    1.conftest.py这个文件名是固定,不可以更改

    2.conftest.py 与运行用例在同一个包下,并且该包中有__int__.py文件

    3.使用的时候不需要导入conftest.py ,pytest会自动识别到这个文件

    4.放到项目的根目录下可以全局调用,放到某个package 下,就在这个package 内有效

    案例:

    在运行整个项目下的所有用例,只执行一次打开浏览器。执行完所有的用例之后再执行关闭浏览器,可以在这个项目下创建一个conftest.py文件,将打开浏览器操作的方法

    放在这个文件下,并添加一个装饰器 @pytest.fixture(scope='session'),就能够实现整个项目所有测试用例的浏览器复用,案例目录结构如下:

     创建目录test_scope,并在目录下创建三个文件conftest.py   test_scope1.py和test_scope2.py

    conftest.py文件定义了公共方法,pytest会自动读取conftest.py定义的方法,代码如下

    #!/usr/bin/env python
    # _*_coding: utf-8 _*_
    
    import pytest
    
    @pytest.fixture(scope="session")
    def open():
        print("打开浏览器")
        yield
    
        print("执行teardown !")
        print("关闭浏览器")

    创建文件test_scope1.py代码如下:

    !/usr/bin/env python
    # _*_coding: utf-8 _*_
    
    import pytest
    
    
    def test_search1(open):
        prin("test_search1")
        pass
    
    
    def test_search2(open):
        print("test_search2")
        pass
    
    
    def test_search3(open):
        prin("test_search3")
        pass

    创建test_scope2.py 代码如下

    #!/usr/bin/env python
    # _*_coding: utf-8 _*_
    
    class TestFunc():
        def test_case1(self):
            print("test_case1,需要登入")
    
        def test_case2(self):
            print("test_case2,不需要登入")
    
        def test_case3(self):
            print("test_case3,需要登入")

    打开CMD,进入目录test_scope执行如下命令

    pytest -v -s

    或者

    pytest  -v  -s  test_scope1.py  test_scope2.py

  • 相关阅读:
    14使用函数时要特别考虑的问题
    13子程序的参数
    12子程序的名字和长度
    (解决tomcat端口被占用的问题)create[8005]java.net.BindException: Address already in use: JVM_Bind
    纠错记录(Could not open the editor: Android XML Editor cannot process this input.)
    查看端口被占用的进程号然后结束进程(解决端口被进程占用的问题)
    使用java对执行命令行 或 执行bat文件
    ant_0105
    ant 具体命令行展示代码
    ant 关键字和关键语句
  • 原文地址:https://www.cnblogs.com/vigo01/p/14336989.html
Copyright © 2020-2023  润新知