一、查缺补漏
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. vim的visual模式和列编辑

    有三种方式进入visual模式: 1> 在普通模式下输入v(小写),底部提示信息为VISUAL,编辑粒度为字符 通过方向键或者HJKL调整选择的字符范围. 输入d,删除选中字符: 输入y,复制当 ...

  2. Hive启动留下的RunJar进程不能使用Kill -9 杀不掉怎么办?

    1.问题示例 [Hadoop@master Logs]$ jps 3728 ResourceManager 6976 RunJar 7587 Jps 4277 Master 3095 NameNode ...

  3. 数制、ip地址及子网

    一.数制 数制:计数的方法,指用一组固定的符号和统一的规则表示数值的方法 数位:指数字符号在一个数中所处的位置 基数:指在某种进制计数中,数位上所能使用的数字符号的个数 位权:指在某种进制计数中,数位 ...

  4. 内存取证 volatility的使用

    volatility 简介: volatility(挖楼推了推) 是一个开源的框架,能够对导出的内存镜像进行分析,能够通过获取内核的数据结构,使用插件获取内存的详细情况和运行状态,同时可以直接dump ...

  5. LeetCode 周赛 336,多少人直接 CV?

    本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 大家好,我是小彭. 今天早上是 LeetCode 第 336 场周赛,你参加了吗?这场周赛整体质量比较高,但 ...

  6. JavaWeb学习笔记第三弹

    一.数据库设计 1.软件研发步骤 2.数据库设计概念 建立数据库中的表结构以及表与表之间的关联关系的过程 3.数据库设计的步骤 表关系:一对一.一对多(多对一).多对多 表关系之一对多 表关系之多对多 ...

  7. Schillace 定律 背后的 Sam Schillace

    微软semantic-kernel(SK)团队发布了一篇博客文章:Early Lessons From GPT-4: The Schillace Laws[1] ,微软的CVP , Deputy CT ...

  8. buuctf-RE-SimpleRev

    IDA 打开 将main函数反编译为C代码 1 int __cdecl __noreturn main(int argc, const char **argv, const char **envp) ...

  9. [CTF]picoCTF-day1

    Lets Warm Up If I told you a word started with 0x70 in hexadecimal, what would it start with in ASCI ...

  10. 深入理解 python 虚拟机:令人拍案叫绝的字节码设计

    深入理解 python 虚拟机:令人拍案叫绝的字节码设计 在本篇文章当中主要给大家介绍 cpython 虚拟机对于字节码的设计以及在调试过程当中一个比较重要的字段 co_lnotab 的设计原理! p ...