• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    详解pytest实现mark标记功能详细介绍

    mark标记

    ​在实际工作中,我们要写的自动化用例会比较多,也不会都放在一个py文件中,如果有几十个py文件,上百个方法,而我们只想运行当中部分的用例时怎么办?

    ​pytest提供了一个非常好用的mark功能,可以给测试用例打上各种各样的标签,运行用例时可以指定运行某个标签。mark功能作用就是灵活的管理和运行测试用例。

    ​标签既可以打到方法上,也可以打到类上,标记的两种方式:

    import pytest
    
    
    @pytest.mark.beta	# 可以给类打标签
    class TestLogin:	# 标记类
    
        @pytest.mark.qc
        @pytest.mark.beta	# 也可以多个标签
        def test_login(self):	# 标记方法
            pass
    
    @pytest.mark.smoke		# 单个标签
    def test_register():	# 标记函数
            pass
    
    class TestClass:
        # 加一个 pytestmark的类属性
        pytestmark = [pytest.mark.qc, pytest.mark.beta]	# 标签存放在一个列表
    
    pytest.main()
    

    注册标签名

    ​我们要想运行已经打好标记的函数,还需要对标签名进行注册,告诉pytest有哪些标签,如果不进行注册运行时(pytest的高级版本)可能会报警告让你进行注册。

    ​我们只需要在项目根目录下创建一个pytest.ini文件,注意文件名是不可修改的,否则pytest会找不到。内容格式如下:

    # pytest.ini
    # 只能修改=右边的值
    [pytest]	
    python_files = demo_*.py	# 模块名以demo_开头
    python_functions = demo_*	# 方法名以demo_开头
    python_classes = Demo*	# 类名名以Demo开头
    
    # 注册标签
    markers =
        qc
        beta
        smoke

    运行指定的标签

    通过命令行执行

    ​单个标签:pytest -m "标签名"(-m意思是执行标签mark),不想执行某个标签可以用not来取反,即pytest -m "not 标签名"

    ​多个标签:可以加上判断,pytest -m "qc and beta" 或者 pytest -m "qc or beta" 效果是一样的

    ​注意:标签名一定要加双引号,单引号是会报错的。

    通过代码执行

    ​这里普及一下,main()方法是可以接收不定长参数的,因此可以把要执行的命令放在一个列表中

    if __name__ == '__main__':
        pytest.main(['-m qc and beta', '-s'])	# 标签名不需要加引号
    

    关于pytest的指令,可以通过控制台执行pytest --help查看,上面举例中-s命令是指打印更加详细的信息,如果程序运行过程当中的print()信息打印不出来,可以加上-s可选参数,它是-- capture=no的缩写。

    skip跳过标记

    ​在维护测试用例的过程中,可能在一个阶段某些用例已经不需要了,或者在指定条件下是不需要运行的,那么我们就可以通过mark.skip跳过这些函数或者类,两种跳过方式:

    db_host = 'localhost'
    
    @pytest.mark.skip("和现在的需求不符合")	# 不满足当下了,或别人编写的暂时不能删的
    def test_yuz(self):
        pass
    
    @pytest.mark.skipif(db_host == 'localhost', reason='只测试线上环境,不测试本地环境')
    def test_develop_env(self):
        pass
    

    到此这篇关于详解pytest实现mark标记功能详细介绍的文章就介绍到这了,更多相关pytest mark标记 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • python的pytest框架之命令行参数详解(上)
    • 详解用Pytest+Allure生成漂亮的HTML图形化测试报告
    • python pytest进阶之conftest.py详解
    • python pytest进阶之fixture详解
    • Pytest测试框架基本使用方法详解
    • Python 测试框架unittest和pytest的优劣
    • Pytest参数化parametrize使用代码实例
    • pytest中文文档之编写断言
    • 在pycharm中文件取消用 pytest模式打开的操作
    上一篇:Python 如何将字符串每两个用空格隔开
    下一篇:python 读取以空格分开的文件操作
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    详解pytest实现mark标记功能详细介绍 详解,pytest,实现,mark,标记,