• pytest框架


    视频链接:2022全网最新精通Pytest自动化测试框架之Pytest数据驱动装饰器接口测试_哔哩哔哩_bilibili

    一、

    1、了解pytest测试框架的特点

     2.2 启动pytest

    (1)执行在命令行输入pytest---在什么地方安装, 就在什么地方输入(推荐使用)

    (2)pycharm代码中执行pytest.main()

    (3)pycharm提供了testrunner(建议不要使用)

    a、需要在pycharm中配置环境变量

    b、不会执行if __name == '__main__':里面的内容

    c、testrunner本身容易有bug

     执行结果:展示》

    2022最全python/pytest/Allure报告接口自动化测试框架,3天带你精通Pytest自动化框架_哔哩哔哩_bilibili

    二、最新pytest简介

     

    一个个安装很麻烦, 一次性安装

            新建一个requiement.txt文件  

    pytest -version 可以查看pytest的版本  

    运行方式

     

    通过ini配置文件执行 

      (1)运行所有 -s 表示输出调试信息和用例打印信息

    main方法在任何文件里面运行都可以执行所有模块 

    (2)运行指定模块

     -v 显示详细信息

    -vs 模块名 运行指定模块 显示执行模块的详细信息和打印参数

    指定文件夹执行: 用于分模块的场景 通过nodeid指定用例执行

    pytest既可以执行函数也可以执行方法

            执行函数         执行方法: 方法需要加上类

    (3)通过ini配置文件运行

    最上面[pytest]是固定写法

    eg: 

    分布式运行: 两个文件里面都有main函数都sleep(3), 运行这两个文件就会运行6s, 使用 -n 指定线程的方式就会缩小一半左右的时间

    失败用例重跑 

    (4)执行顺序: 默认同一个文件里面多个函数是从上而下的执行 

    安装pytest-ordering插件后可以指定执行顺序

     七、如何分组执行

            加上注解: mark.自定义模块名 

             ini文件中分模块

            执行

            既想执行冒烟, 又想执行用户管理, 使用or的方式连接 八、pytest跳过测试用例

    直接执行pytest, 因为ini文件中已经配置了执行方式, 发现微微被跳过了

    九、生成报告 

    参数

     新建report目录, 报告一般放到这个目录下面

    十、pytest框架前后置 

    1、使用steup等

     注意: 和uinittest不一样, 全部是小写

    setup和teardown在每个函数之前和之后都会执行

    2、使用fixture装饰器来实现部分用例的前后置(既可以实现所有, 也可以实现部分) 

    例子:

    (1)scope: 下面的例子中test_02_xingyao调用了这个被修饰的函数, 所以可以使用, 没有调用的不能使用

     

     加上yield可以实现后置, 将前后置放到一个方法里面

    (2)aotouse=True可以实现所有用例, 所有函数都前置

    scope=‘class’ 作用域是类不是函数, 表示在类的前后调用

     module表示每个模块的前后调用一次

    (3)params 参数化: 使用参数化的时候, 参数的值会通过request的方式接收在传递到后面的函数里面

    别名: 使用别名之后就不能使用之前的参数名字传参

    3、通过conftest.py和@pytest.fixture()结合使用实现全局使用

    4、断言

    5、pytest结合allure-pytest插件生成allure测试报告

    十一、mark~parametrize

    第二种方式: @unpack解包一样 

     2、yaml文件详解

     可以去网站上转换yaml和json文件和yaml转换

    eg: 读取yaml文件中的数据反序列化为字典格式

    先安装yaml插件 新建yaml工具包操作yaml

    yaml文件

    十二、 yaml接口自动化项目实战

    接口文档

     

    实现:

    1、基本思想

    首先安装request, 发送get post请求 ​​​​​​​

    使用yaml的方式实现 

     YamUtil的内容上面有截图

     实现了: 如果想要继续加用例, 不需要改代码,只用在yaml中继续增加用例即可

     上面没有增加断言, 没有开放报告

    课程不够详细, 可以参考之前的代码研究下这个框架比如log目录, 报告allure, 封装的get post等方法, yamlUtil文件等等, 可以了解下接口和UI自动化框架一体化平台整合, uniittest、flask、jekins、docker, 还是深入研究项目吧, 这个视频大都是广告引流去报班了!!!

  • 相关阅读:
    【C语言】循环语句详解
    HTML静态网页成品作业(HTML+CSS)—— 环保主题介绍网页(5个页面)
    性能测试监控指标及分析调优 | 京东云技术团队
    从零构建医疗领域知识图谱的KBQA问答系统:其中7类实体,约3.7万实体,21万实体关系。
    【设计模式】Java 设计模式之享元模式(Flyweight)
    “蔚来杯“2022牛客暑期多校训练营4(A,D,H,K,N)
    【NOWCODER】- Python:运算符(二)
    Java与Redis的集成
    分布式事务解决方案-Seate描述
    数据库索引原理
  • 原文地址:https://blog.csdn.net/xuruhua/article/details/126944071