什么是pytest,手把手教你搞定pytest的上线与发布

举报
泽宇-Li 发表于 2023/07/14 13:31:15 2023/07/14
【摘要】 一:介绍pytest岗位及区别  伴随着人工智能的兴起,自动化测试和测试开发都需要掌握pytest框架,说到这肯定有同学好奇,都是要掌握pytest架构为什么还分为俩个岗位呢?这里我们就聊聊二者的本质区别:  1:使用pytest  测试用例的编写人员        测试框架的维护人员 配置 消除错误提示        扮演使用者的角色 根据需求编写用例代码2:维护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文件 生成了 日志和报告

          image.png

             查看接口请求日志 生成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本身配合来实现。通过插件的方式来扩展功能。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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