pytest学习记录

举报
建帅小伙儿 发表于 2022/09/25 01:23:45 2022/09/25
【摘要】 一:pytest介绍 1.非常成熟的单元测试框架,比unittest更加灵活,容易上手2.pytest可以和selenium,requests,appium结合实现web自动化,接口自动化,app自动化3.pytest可以实现测试用例的跳过以及rerun失败用例重试4.pytest可以和allure生成漂亮的报告5.pytes...

一:pytest介绍


   
  1. 1.非常成熟的单元测试框架,比unittest更加灵活,容易上手
  2. 2.pytest可以和selenium,requests,appium结合实现web自动化,接口自动化,app自动化
  3. 3.pytest可以实现测试用例的跳过以及rerun失败用例重试
  4. 4.pytest可以和allure生成漂亮的报告
  5. 5.pytest可以和jenkins持续集成
  6. 6.pytest有强大的插件,功能很实用
  7. pytest
  8. pytest-html:生成html格式的自动化报告
  9. pytest-xdist:测试用例分布式执行,多cpu分发
  10. pytest-ordering:用于改变测试用例执行顺序
  11. pytest-rerunfailures:用例失败重跑
  12. allure-pytest:生成测试报告

二:pytest默认用例的规则以及基础应用


   
  1. 1.模块名必须以test_或者_test结尾开头
  2. 2.测试类必须以Test开头,并且不能带有init方法
  3. 3.测试用例必须以test_开头

三:pytest测试用例的运行方式


   
  1. main函数执行方法:
  2. 1.运行所有pytest.main()
  3. 2.指定模块:pytest.main(['-vs', 'test_login.py'])
  4. 3.指定 目录:pytest.main(['-vs', './testcase'])
  5. 4.通过nodeid指定用例运行:nodeid由模块名,分隔符,类名,方法名,函数名组成pytest.main(['-vs', './testcase/test_login.py::test_001'])
  6. 命令行模式:
  7. 1.运行所有:pytest
  8. 2.指定模块:pytest -vs test_login.py
  9. 3.指定目录:pytest -vs ./testcase
  10. 4.指定目录:pytest -vs ./testcase/test_login.py::test_001
  11. 通过读取pytest.ini配置文件运行
  12. [pytest]
  13. addopts=-vs 命令行参数,用空格分开
  14. testpaths=./testcase 用例路径
  15. python_files=test*.py 模块名的规则
  16. python_classes=Test* 类名的规则
  17. python_functions=test_* 方法名的规则
  18. addopts = -vs --html ./report/report.html
  19. 1.Pytest.ini这个文件是pytest的单元测试框架核心配置文件
  20. 2.编码:必须是ANSI,可以使用notepad++来更改编码格式(编码---转为ANSI)
  21. 3.作用:改变pytest的默认行为
  22. 4.不管是主函数模式运行还是命令行模式运行,都会读取这个文件

四:常用参数介绍


   
  1. 执行的参数:
  2. -vs
  3. -v:输出相信信息
  4. pytest -v
  5. -s:输出调试信息
  6. -n:多线程运行(pytest-xdist)
  7. pytest -vs -n=2
  8. return num 失败重跑 安装插件:pytest-rerunfailures
  9. raise Exception('ggg') 抛出异常
  10. try except 解决异常
  11. -x 出现一个用例失败,则停止测试
  12. 如:pytest -vs -x
  13. --maxfail 出现几个失败才终止
  14. --html 生成htnl测试报告 安装插件:pytest-html
  15. pytest -vs --html ./reports/result.html
  16. -k 运行测试用例中包含某个字符穿的测试用例
  17. pytest -vs -k "002"

五:pytest用例执行顺序


   
  1. Unittest:是通过ascII的大小来执行
  2. Pytest:默认从上往下
  3. 改变默认的执行顺序:使用mark标记
  4. @pytest.mark.run(order=2)

六:分组执行(冒烟、分模块、web和接口的)


   
  1. Pytest.ini
  2. [pytest]
  3. addopts = -vs
  4. testpaths = ./testcase
  5. python_files = test*.py
  6. python_classes = Test*
  7. python_functions = test_*
  8. markers =
  9. smoke:冒烟用例
  10. usermanage:用户管理
  11. Smoke: 冒烟用例,分布在各个模块里头
  12. Pytest -vs -m "smoke"
  13. Pytest -vs -m "smoke or usermanage"

文章来源: blog.csdn.net,作者:懿曲折扇情,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_41332844/article/details/126837395

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。