• pytest 之 pytest.ini配置文件


    前言:pytest.ini全局配置文件,是pytest单元测试框架的核心配置文件,pytest.ini 可以改变 pytest 的默认行为

    一、配置规则

    1、优先级

    • 如pytest.ini有该参数值,在执行的时候,优先读取配置文件中的参数
    • 如没有,则取其他地方的(主函数/命令行中)

    2、位置及命名

    • 位置:一般放在项目的根目录(即当前项目的顶级文件夹下)
    • 命名:pytest.ini,不能使用任何中文符号,包括汉字、空格、引号、冒号等等
    • 新建方式:点击鼠标右键(New->File->pytest.ini)
    • 编码格式:GBK或者ANSI,可以使用notepad++修改编码格式

    3、格式

    格式一般是固定的,建议将中文删掉:

    [pytest]
    ;命令行参数,用空格进行分隔
    addopts = -vs
    
    ;注册 mark 标记
    markers =
        demo : marks tests as demo
        smoke: marks tests as smoke
        uat : marks tests as uat
        test : marks tests as test
    ;测试用例的路径,可自己配置,
    ;../pytestproject为上一层的pytestproject文件夹
    ;./testcase为pytest.ini当前目录下的同级文件夹
    testpaths =./testcase
    
    ;模块名的规则,配置测试搜索的模块文件名称
    python_files = test*.py
    
    ;类名的规则,配置测试搜索的测试类名
    python_classes = Test*
    
    ;方法名的规则,配置测试搜索的测试函数名
    python_functions = test
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    二、addopts配置:参数详解

    • -s:表示输出调试信息,用于显示测试函数中print()打印的信息
    • -v:未加前只打印模块名,加v后打印类名、模块名、方法名,显示更详细的信息
    • -q:表示只显示整体测试结果
    • -vs:这两个参数可以一起使用
    • -n:支持多线程或者分布式运行测试用例(前提需安装:pytest-xdist插件)
      • 如:pytest -vs test_login.py -n 2
    • –html:生成html的测试报告(前提需安装:pytest-html插件)
      • 如:pytest -vs --html ./reports/result.html
    • –reruns num: 用例失败后重跑,跑几次(前提需安装:pytest-rerunfailures插件)
      • 如:pytest -vs --reruns=2
    • -x:表示只要出现一个用例失败报错则停止执行,
      • 如:pytest -vs -x
    • –maxfail:表示出现几个用例失败报错,则终止测试
      • 如:pytest -vs --maxfail=2
    • -k:模糊匹配,运行测试用例名称中包含某个字符串的测试用例:
      • 如: pytest -vs -k “test_ins”
    • -m 指定标签(pytest.mark.标签)

    三、注册mark标记

    我们在编写自动化测试用例时,会有各种类型的场景用例,我们又不想一次性运行全部,只想运行其中的几个,这时我们可以借助mark标签来管理测试用例,mark标签是任意取的,但是要避开Python和pytest关键字,运行标签用 - m 来运行,如:pytest -m login
    pytest.ini的mark标签配置示例(markers名称不可修改,里面的标签可自定义):

    markers =
        demo : marks tests as demo
        smoke: marks tests as smoke
        uat : marks tests as uat
        test : marks tests as test
        login:marks login cases as test
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    然后在需要被标记的用例上加上@pytest.mark.xxx(xxx为标记的名称,比如@pytest.mark.login)

    @pytest.mark.login
    def test_login(self):
        u"""登录操作"""
        login_result = Login(self.driver).login_from_anli_pwd(normal_account, normal_password)
        assert login_result == "登录成功"
    
    • 1
    • 2
    • 3
    • 4
    • 5

    最后运行pytest -m login即可执行标记了标签的所有用例

    四、testpaths配置

    1)pytest默认是搜索执行当前目录下的所有以test_开头的测试用例;我们可以在pytest.ini配置testpaths = test_case/test_001.py,则只执行当前配置的文件夹下或文件里的指定用例
    2)可配置多个,空格隔开:python_files = test_.py haha_.py

    五、运行方式

    由于已经在pytest.int中配置了运行规则,所以在主函数中就不需要重复配置,只需要执行pytest.main()即可
    一般把执行的主函数文件,也放在根目录下,如图:
    [图片]

  • 相关阅读:
    基于Java web的校园电动车租赁系统
    上午卷-5.系统开发与运营-软件设计师
    国产10米分辨率的卫星介绍、下载和处理教程
    SpringCloud框架(一):环境搭建 生产和消费 RestTemplate,底层源码解读
    4.DesignForShapes\2.AutoRoutingAddShape
    给LaTeX公式添加优美的注解;日更『数据科学』面试题集锦;大学生『计算机』自学指南;个人防火墙;前沿资料/论文 | ShowMeAI资讯日报
    灯具类产品各站点上架TEMU平台需要提供什么认证?
    MojoTween:使用「Burst、Jobs、Collections、Mathematics」优化实现的Unity顶级「Tween动画引擎」
    九、Delay函数
    Python函数装饰器的深入解析
  • 原文地址:https://blog.csdn.net/qq_40480758/article/details/133814584