一、查缺补漏
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去掉就好

Python_15 ddt驱动与日志的更多相关文章

  1. DDT驱动selenium自动化测试

    建两个.py文件分别是是读取xlsx文件内容,一个是测试用例使用ddt驱动 获取xlsx文件内容 import xlrd class ParseExcel(object): def __init__( ...

  2. selenium3关于ddt驱动之读取json文件。。。

    from selenium import webdriver import ddt import time import unittest """ DDT(驱动.json ...

  3. DDT驱动

    下载ddt并安装 Pip install ddt 或者官网下载安装 http://ddt.readthedocs.io/en/latest/ https://github.com/txels/ddt ...

  4. Mac OS下 selenium 驱动safari日志

    /Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home/bin/java "-javaagent:/Applicat ...

  5. Selenium(Python) ddt读取MySQL数据驱动

    import unittestfrom time import sleep from ddt import ddt, datafrom pymysql import connectfrom selen ...

  6. Selenium(Python) ddt读取Excel文件数据驱动

    首先, 引入xlrd模块: ExcelDDT.py: import unittestfrom time import sleep from ddt import ddt, datafrom selen ...

  7. Selenium(Python) ddt读取CSV文件数据驱动

    import csvimport unittestfrom time import sleep from ddt import ddt, data, unpackfrom selenium impor ...

  8. Docker容器日志管理最佳实践

    目录 一 .Docker 引擎日志 二.容器日志 2.1.常用查看日志命令--docker logs 2.2 .Docker 日志 驱动 三. 生产环境中该如何储存容器中的日志 一.当是完全是标准输出 ...

  9. LOG日志溯源取证总结

    windows操作系统事件日志 C:\Windows\System32\winevt\Logs\ *( XP C:\Windows\System32) 应用程序日志 App Event.Evtx(Ap ...

  10. docker容器日志管理

    docker容器日志分为两类:docker引擎日志(Docker本身运行的日志)和容器日志(各个容器内产生的日志) 一.Docker引擎日志: Centos系统下的docker引擎日志一般给syste ...

随机推荐

  1. git merge的原理

    当我我们拉去代码合并到master的另一个分支上面去的时候 只是对比当前分支commit的修改与增加的代码,其他代码以master为主.

  2. 搬运 nginx代理https

    oauth2-client在Nginx代理后遇到的问题和解决方案  2020-01-17 2020-05-27  TECH 30 MINUTES READ (ABOUT 4442 WORDS) OAu ...

  3. 一、ptthon安装

    1.在 Window 平台上安装 Python 的简单步骤,打开 WEB 浏览器访问:www.python.org,选择Downloads 2.然后在该页面选择需要下载的版本, 3.下载完成后直接双击 ...

  4. el-select的正确用法

    下拉框应该是大家非常常用的一个组件,表单几乎离不开它,可是用了三年后我突然发现我一直没有正确的使用它..... ElementUI 组件一直让我纠结的地方是 绑定的值对我来说经常需要绑定值的其他字段信 ...

  5. Python使用Eel和HTML开发桌面应用GUI直接用web前端的VUE+VANT来做

    python的gui太难用了,唯一能配置独立前端的程序只有web.所以用web做前端,到python,完美! 环境准备    Python 3.9    Chrome浏览器(由于Eel是直接调用的Ch ...

  6. SpringBoot——实现WebService接口服务端以及客户端开发

    参考:https://blog.csdn.net/qq_43842093/article/details/123076587 https://www.cnblogs.com/yinyl/p/14197 ...

  7. node.js缓冲区类与node-red向串口发数据

    遇到的问题是使用node-red的串口模块向串口发送16进制数据,控制LED灯. 初学者经常想当然的认为只要msg的payload里放上对应的数就行了.其实不是. Node-red是node.js环境 ...

  8. 国内免费好用的chatgpt在线应用程序

    我们很高兴向大家介绍我们的全新AI微信小程序:AI文案助手,这是一款功能强大的智能助手,可以为您提供多种实用功能. 首先,我们的AI微信小程序拥有一款聊天机器人,能够与您进行自然对话,并为您提供所需的 ...

  9. 局部异常因子(Local Outlier Factor, LOF)算法详解及实验

    局部异常因子(Local Outlier Factor, LOF)通过计算样本点的局部相对密度来衡量这个样本点的异常情况,可以算是一类无监督学习算法.下面首先对算法的进行介绍,然后进行实验. LOF算 ...

  10. Android笔记--文本输入

    编辑框EditText 相关内部部件取下: inputType的类型如下: 具体实现: 不同边框的实现: 焦点变更监听器 具体实现: 文本变化监听器 具体实现: