随笔 - 29  文章 - 0  评论 - 0  阅读 - 11206

1 Pytest测试框架入门篇

1 pytest简介

  • pytest是一个非常成熟的python的单元框架,比unittest更灵活,容易上手

  • pytest可以和selenium,requests,appium结合实现web自动化,接口自动化,app自动化

  • pytest可以实现测试用例的跳过以及returns失败用例重试

  • pytest可以和allure生成非常美观的测试报告

  • pytest可以和jenkins持续集成

  • pytest有很多非常强大的插件,并且这些插件能够实现很多实用的操作

    • pytest

    • pytest-html (生成html格式的自动化测试报告)

    • pytest-xdist(测试用例分布式执行,多CPU分发)

    • pytest- ordering (用于改变测试用例的执行顺序)

    • pytest- rerunfailures (用例失败后重跑)

    • allure-pytest (用于生成美观的测试报告)

2 pytest规则

  • 模块名必须以test_开头或者_test结尾

  • 测试类必须以Test开头,并且不能有init方法

  • 测试方法必须以test开头

3 运行方式

  • 主函数模式

    • 运行所有:pytest.main()

    • 指定模块:pytest.main(['-vs', 'test_login.py'])

    • 指定目录:pytest.main(['-vs', './interface_testcase'])

    • 通过nodeId指定用例运行:nodeId由模块名、分隔符、类名、方法名、函数名组成 ( pytest.main(['-vs', './interface_testcase/interface_testcase.py::TestCase::test_01_func']) 

  • 命令行模式

    • 运行所有:pytest

    • 指定模块:pytest -vs test_login.py

    • 指定目录:pytest -vs ./interface_testcase

    • 通过nodeId指定用例运行:pytest -vs ./interface_testcase/interface_testcase.py::TestCase::test_01_func

参数详解:

-s:输出调试信息,包括print打印的信息

-v:显示更详细的信息

-vs:上面两个参数一起用

-n:支持多线程或者分布式运行测试用例

--reruns NUM:失败用例重跑

-x:只要有一个用例报错就停止

--maxfail=2:出现两个用例失败就停止

-k:根据测试用例的部分字符串去指定测试用例

  • 通过读取pytest.ini配置文件运行

    • 位置:一般放在项目的根目录

    • 编码:必须是ANSI,可以使用notpad++修改编码格式

    • 作用:改变pytest默认的行为(如类名、方法名可以不以test开头)

    • 运行的规则:不管是主函数的模式运行,命令行模式运行,都会去读取这个配置文件

      • [pytest]

      • addopts = -vs #命令行的参数,用空格分隔

      • testpaths = ./testcase # 测试用例的路径

      • python_files = test_*.py # 模块名的规则

      • python_classes = Test* # 类名的规则

      • python_functions = test # 方法名的规则

      • markers = 

smoke:冒烟用例

usermanage:用户管理模块

productmanage:商品管理模块

(在类方法前调用@pytest.mark.smoke即可使用冒烟用例,执行冒烟用例使用pytest -m "smoke",同时使用多个模块使用pytest -m "A or B or C")

4 pytest执行测试用例的顺序

pytest:默认从上到下

改变默认的执行顺序:使用mark标记,如@pytest.mark.run(order=3)

5 pytest跳过测试用例

无条件:@pytest.mark.skip(reason="跳过原因...")

有条件:  @pytest.mark.skip(age>=18,reason="满足已成年的判断,所以跳过了...")

 

posted on   叮叮当~  阅读(51)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示