码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Python_15 ddt驱动与日志


    合集 - python(19)
    1.Python_1 安装python和pycharm2021-06-282.Python_2 运算符2021-06-283.Python_3 字符串常用方法、字符串格式化和列表2021-06-304.Python_4 列表和元组2021-07-095.Python_5 字典、深浅拷贝2021-07-096.python_7 退出、结束循环和嵌套循环04-227.python_8 拆包、内置函数和高阶函数04-228.python_6 关于集合set、数据类型转换等2022-10-139.Python_9 py文件导入和路径处理04-2310.Python_10 debug、类和对象04-2311.Python_11 类的方法04-2412.Python_12 多继承与多态04-2413.Python_13 接口测试openpyxl和表操作04-2614.Python_14 接口测试报告04-27
    15.Python_15 ddt驱动与日志05-02
    16.Python_16 配置文件与封装05-0317.Python_17 OSI模型和HTTP协议05-0418.Python_17 session、cookie 鉴权05-0819.Python_18 unittest和随机数05-10
    收起

    一、查缺补漏
    1. 在测试报告中添加注释,写在类名下面就行,方法名下面,三引号

    2. 直接import ddt引用的时候需要ddt.ddt, ddt.data, ddt.unpack
     from ddt import ddt,data,unpackkeyi from会更好,引用的时候直接data就行
    二、DDT数据驱动
    1. 数据驱动:将不同的数据在同一个业务逻辑上运行,只需写一个测试用例获取改变项,就可以完成测试文档
    2. 使用:
      a. 安装DDT(Data Driven Tests) pip install ddt

      b. 语法:ddt只能对可迭代对象进行解包,像元组和列表,不可以用于字典解包,字典用zip
       from ddt import ddt,data,unpack 从ddt库种导出ddt,data,unpack函数
       在测试类上使用@ddt
       在测试函数上使用@data(*case_data),进行数据解压,然后每一个元素传入测试函数

      c. @data():解压一层
       @unpack(): 解压多层

      d. 用于取值做接口测试

    三、日志
    1. 日志模块
      a. 日志作用:日志记录程序的执行过程
      b. 日志要素
        i. 日志渠道:日志输出位置,文件,控制台,用来收集日志的
        ii. 日志级别:info、debug、error 我们经常用的
        iii. 日志格式:日志的样子,类似于报错提示哪一行
        iv. 日志内容:自己输出的内容,或者是报错信息
    2. 日志级别(debug < info < warning < error < critical)按严重度从小到大排序 ,查看级别顺序是只可以查看更严重的
      a. debug:代码调试的输出,不希望别人看到的日志
      b. info:表示程序正常执行的输出
      c. warning:不影响程序执行,可以优化,提示你
      d. error:程序执行报错
      e. critical:程序严重问题
      f. 修改root收集器的日志级别:logging.basicConfig(level=logging.级别) 设置日志级别
    3. 日志收集器创建
      a. 创建日志收集器:创建和root一样的收集器
        test_log = logging.getLogger(name='日志渠道的名称') 日志渠道的名称一般是与项目名称一致
      b. 创建日志收集渠道:输出到哪里
        实例化名称1 = logging.StreamHandler() 创建日志控制台渠道,需要实例化
      c. 创建日志格式 fmt是参数,参数可以做名字,但是关键字不可以,紫色是参数 格式解释在图片里
       格式名 = '【%(asctime)s-%(name)s-%(levelno)s-%(levelname)s-%(pathname)s-%(lineno)d】:%(message)s'
       格式接收名 = logging.Formatter(fmt = 格式名)
       测试中的值传给了message
      d. 设置日志输出格式【渠道】实例化名称1.setFormatter(fmt =格式接收名) 实例化名称1.setLevel(logging.级别) 渠道级别
      e. 设置日志级别【收集器】test_log.setLevel(logging.级别) 一般只设定一个
      f. 收集器绑定渠道 test_log.addHandler(实例化名称1)

    4. 日志切割 将日志收集到文件中方便收集 日志会叠加在文件中
      handlers.RotatingFileHandler():按文件大小切日志【了解】
      handlers.TimedRotatingFileHandler():按时间切日志【掌握】
      filename:日志文件名称,要带路径,默认是当前目录
      when='h',:日志滚动周期的单位,S:秒, M:分钟 ,H:小时, D:日, W:周, midnight:日期
      interval=1:滚动周期(日志切割周期),1 间隔多个个when
      backupCount=0:日志保留的个数
      encoding=None:编码格式

     5. 函数封装日志,一般调用日志函数的实例化对象,不直接调用函数

    四、一些小记
    1. 实例化名 = logging.getLogger() 实例化接收,里面没有内容打印出来没有内容None 用于日志
    2. 报缺少self字段时多半是实例化问题,后面没写括号
    3. 不想显示None把print去掉就好

  • 相关阅读:
    【Vue】科学计数法常见处理
    《大数据之路:阿里巴巴大数据实践》-第1篇 数据技术篇 -第5章 实时技术
    用最清爽的方式开发dotNet
    【Java面试题】cookie和session的区别
    异步编程规避Redis的阻塞(上)
    GO语言网络编程(并发编程)runtime包
    Python 实现自动化测试 dubbo 协议接口
    OGG|使用 OGG12.3 同步 Oracle 部分表到 Kafka
    SpringBoot知识点复习
    技术分享 | Appium 用例录制
  • 原文地址:https://www.cnblogs.com/Alisa-sweet/p/17366853.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号