接口测试--Day5
Pytest是一个流行的测试框架广泛应用于单元测试、集成测试和功能测试。它具有简单、灵活、可扩展的特点提供了丰富的功能和插件儿生态系统它简化了测试的编写和组织拍通过丰富的功能和简洁的语法让测试变得容易灵活且易于理解。二、安装pip install pytest三、Pytest测试规则测试文件以test的开头测试类以test的开头并且类中类里面不能带有init初始化构造函数测试函数以test开头断言使用基本的assert即可。四、Pytest的运行方式命令行运行方式:直接在命令行中输入pytest, 它将自动查找并执行当前目录以及子目录中所有以test开头的测试用例文件。运行指定目录的测试用例指定要运行的目录拍test将查找并运行该目录及其子目录下的测试用例。pytest /testcase/login运行指定文件的测试:pytest /testcase/login/test_login.py使用-k参数并提供测试用例或测试目录的名称来运行测试用例指定目录pytest -k login指定测试文件pytest -k test_login指定测试函数pytest -k test_write_content参数说明-s 表示输出调试信息包括print信息-v显示更加详细的信息-K指定运行测试用例函数、文件或目录。主函数方式运行:用于执行pytest的测试它可以通过传递命令行参数来配置和控制测试的执行。if __name__ __main__: pytest.main([-vs])通过读取pytest框架的配置文件--pytest.iniPytest.ini文件是pytest的测试框架的配置文件它允许你设置各种配置选项以自定义的行为运行测试一般是在项目的根目录下创建pytest.ini,pyest将在运行测试的时候读取该文件并应用其中的配置。配置文件参数说明addopts: 用于在运行测试时传递额外的命令行选项testpaths: 用于指定pytest在哪些目录下查找测试文件它允许你定义一个或多个目录告诉pytest这些目录下寻找文件。python_files: 用于指定测试文件的命名模式匹配pytest_classes: 用于指定测试类的命名模式匹配python_functions: 用于指定测试函数的命名匹配markers: 用于注册自定义标记[pytest] addopts -vs -alluredir./report/temp --clean-alluredir --rerun3 -m P1 or P3 -n 3 testpaths ./testcase/other python_files test_*.py python_classes Test* python_functions test_*五、插件系统1pytest提供了一个插件设置多进程/多线程数并发执行使测试用例可以在多个进程环境下并发执行提高执行效率pytest-xdist提供一个-n选项设置多进程/多线程数量安装插件pip install pytest-xdist 使用pytest.main([-n3]) 或者 addopts -vs -n 3重run测试用例当我们做自动化测试时执行测试用例遇到网络波动或者其他不确定因素导致测试用例运行失败这并不是测试的失败这时需要用到重新run失败的测试用例pip install pytest-rerunfailures #应用 pytest.mark.flaky(reruns3, reruns_delay2) def test_login_success(self): import random assert random.choice([True,False]), 测试失败 #reruns失败重run的次数reruns_delay失败重run的时间间隔3测试用例执行顺序在默认情况下pytest会按特定的顺序执行可以使用pytest ordering插件儿去自定义测试用例的执行顺序。安装插件pip install pytest-ordering #应用 pytest.mark.run(order3) def test_add_user1(self): print(新增用户1)六、pytest的分组执行和跳过执行1 分组执行在Pytest中可以使用标记或者参数化来实现测试用例的分组执行分组执行是一种将测试用例按照特定的标记或者条件进行组织的运行方法在测试用例中打上标记pytest.mark.P1 def test_open_new_label(self, not_login_driver): label_pageLabelPage(not_login_driver) label_page.open_new_lable_operate()在pytest.ini中注册makers P1使用-m 去执行分组的测试用例pytest -m P1跳过执行用无条件掉跳过 pytest.mark.skip有条件跳过 pytest.mark.skipif(conditionnum3, reason不符合条件)七、参数化处理在Pytest参数化是一种将相同的测试用例以不同的参数运行多次的机制这可以帮助简化测试代码使其更灵活和更易维护。达到覆盖不同的测试场景通过pytest.mark.parametrize装饰器去实现。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2469583.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!