一、pytest用例管理框架 文档:https://docs.pytest.org/en/latest/contents.html#toc
第三方库:https://pypi.org/search/?q=pytest
pytest默认规则:
1、py文件必须以test_开头或者_test结尾
2、类名必须以Test开头
3、测试用例必须以test_开头
pytest用例管理框架的作用:
1、发现测试用例,从多个py文件中通过默认的规则去找测试用例
2、执行测试用例,顺序和条件
3、判断测试结果,断言
4、生成测试报告,html、allure
python.unittest或pytest
java.junit或testng
二、pytest全局观 1、它可以和所有的自动化测试工具selenium,requests,appium结合实现web自动化、接口自动化以及APP自动化。
2、跳过用例以及失败用例重跑
3、结合allure生成美观的测试报告
4、和jenkins持续集成
5、有很多强大的插件
pytest-html 生成html测试报告
pytest-xdist 多线程运行
pytest-ordering 改变测试用例执行顺序
pytest-rerunfailures 失败用例重跑
allure-pytest 生成allure测试报告
一般实际项目开发当中都会使用requrements.txt文件保存插件名称,然后通过:pip install -r requrements.txt
三、运行方式 pytest.main(‘-vs’,‘-n=2’)
1、主函数的方式(命令行方式)
-v 输出更加详细的信息
-s 输出调试信息
-n 多线程运行
-reruns 数字 失败用例重跑 pytest.main(‘-vs’,‘–reruns=2’)
-html=报告的路径 pytest.main(‘-vs’,‘–html=./report.html’)
2、实际工作中使用pytest.ini的配置文件来配置运行
文章图片
四、前后置、夹具 setup/teardowm 在每个用例之前和之后执行一次
setup_class/teardowm_class 在每个类之前和之后执行一次
实现部分的前置
我想其中一个用例做数据库验证,怎么办?
部分的前置:
@pytest.fixtrue(scope=“作用域”,params=“数据驱动”,autouse=“自动执行”,ids=“自定义参数名”,name=“重命名”)
作用域:function, class, module,package/session
可以通过yield唤醒 类似teardowm的功能,简单理解就是返回。yieId和return都是返回数据的意思,只是区分在于,yieId返回多次以及多个数据,return只会返回一次,return之后不能接代码
一般情况下:
@pytest.fixtrue()一般会和conftest.py文件一起使用
conftest.py名称是固定的,功能很强大
1、conftest.py文件时单独存放@pytest.fixtrue()的方法,用处是可以在多个py文件之间共享前置配置
2、conftest.py里面的方法在调用时不需要导入,可以直接使用
3、conftest.py可以有多个,也可以有多个不同层级
五、参数化 1、参数参数化
@pytest.mark.parametrize(argnames, argvalues)
argnames:要参数化的变量,string(逗号分割),list,tupleargvalues:参数化的值,list,list[tuple]
文章图片
2、yaml数据参数化
yaml实现嵌套
【程序人生|接口自动化测试之pytest用例管理框架】yaml实现list
yaml实现字典
文章图片
最后: 可以在公众号:伤心的辣条 ! 自行领取一份216页软件测试工程师面试宝典文档资料【免费的】。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
我推荐一个【Python自动化测试交流群:746506216】,大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,助你快速进阶Python自动化测试/测试开发,走向高薪之路。
喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!
推荐阅读
- 自动化测试|jmeter使用心得(一)
- 项目实训|山东大学项目实训二——python+opencv实现人脸识别
- 软件测试好学吗 入门难度不高,很好学
- 计算机视觉-图像局部描述符
- Python类的创建过程
- Python 不写硬盘上传文件
- python是什么语言
- python中pip是什么
- python shell是什么