什么是pytest,手把手教你搞定pytest的上线与发布
一:介绍pytest岗位及区别
伴随着人工智能的兴起,自动化测试和测试开发都需要掌握pytest框架,说到这肯定有同学好奇,都是要掌握pytest架构为什么还分为俩个岗位呢?这里我们就聊聊二者的本质区别:
1:使用pytest
测试用例的编写人员
测试框架的维护人员 配置 消除错误提示
扮演使用者的角色 根据需求编写用例代码
2:维护pytest
Pytset核心开发人员
Pytest插件开发人员
更多关心pytest内部原理 怎么样添加功能或修改bug 扮演开发角色
二:了解pytest架构及查看方法、特点
综上所述可以看到二者的本质区别,那pytest都可以满足我们的什么需求呢?小编在这里列举了一些比如:失败重新、并发执行、用例排序、生成报告、统计覆盖率、发送邮件等等都是通过pytest中插件实现 ,所以说为什么要很好的掌握pytest架构呢?其实就是要挑战年薪百万,Pytest不仅仅是框架,pytest本身是多个插件组合而成,从pytest源码来学习测试开发来了解其功能。
查看源码方法:
在pycharm中导入:import pytest
输入:pytest.main()函数 同时按下F4来查看pytest源码。
可以看到左边的目录下有大量的文件,大部分文件都有函数且以 pytest_开头 所以说是 由pytest插件来构成。
pytest特点:
1:包含大量插件。
2:pytest中的main函数为入口点,来执行pytest下的main函数 真正执行的是 config。。。和判断try...expert。
3:加载配置
4:执行hook
5:返回exitcode让函数结束执行
注意:main入口点就是调用插件所以说pytest本身就是个插件。
可以理解为pytest框架就是由N个插件堆积起来的,所以相对pytest更深入的了解和开发就需要掌握pytest架构。
三:掌握pytest搭建测试平台思路
如何搭建一个测试平台呢?
1:用django在线编辑excel、yaml文件
2:pytest读取和执行excel、yaml文件,生成我们的调试报告、日志记录。
3:用pytest加载yaml文件 生成了 日志和报告
查看接口请求日志 生成alure的报告 报告可以选用网页报告 放到django中
4:用django来在线展示测试结果和测试报告
注意:allure由ajango提供支持http协议才可以查看报告信息。
综上所述,pytest是一个插件系统,因为具备插件系统的pluggy可以使插件之间相互配合。
pluggy基本原理:
pytest的源码当中可以看到pytest_这些东西很重要就是插件一个约定
1:声明一个函数,称之为hook 不会执行 只用作声明。
2:软件运行的过程中 会自动的调用hook。
3:插件会按照hook的方式 实现函数,被软件自动的调用。
插件成为了软件的一部分所以可以自动的调用,插件的特点可以加入也可以退出
可以把hook理解成约定 插件是按照约定想来就来想走就走 软件是陪着插件和hook到最后 运行环境 插件系统,查看系统的前提条件是一定要有约定 有约定按照约定进行即可 约定就是hook。
总结:
1:深入掌握pytest的必经之路
2:测试开发的标志
3:解决项目需求的技术储备
4:搭建测试平台必备的基础
综上几步可以来搭建测试平台是非常容易的,但是在pytest执行过程中用到很多插件比如:anyio处理异步、xdist读取excel文件、allure生成报告、多个插件和pytest本身配合来实现。通过插件的方式来扩展功能。
- 点赞
- 收藏
- 关注作者
评论(0)