Python_15 ddt驱动与日志
一、查缺补漏
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驱动与日志的更多相关文章
- DDT驱动selenium自动化测试
建两个.py文件分别是是读取xlsx文件内容,一个是测试用例使用ddt驱动 获取xlsx文件内容 import xlrd class ParseExcel(object): def __init__( ...
- selenium3关于ddt驱动之读取json文件。。。
from selenium import webdriver import ddt import time import unittest """ DDT(驱动.json ...
- DDT驱动
下载ddt并安装 Pip install ddt 或者官网下载安装 http://ddt.readthedocs.io/en/latest/ https://github.com/txels/ddt ...
- Mac OS下 selenium 驱动safari日志
/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home/bin/java "-javaagent:/Applicat ...
- Selenium(Python) ddt读取MySQL数据驱动
import unittestfrom time import sleep from ddt import ddt, datafrom pymysql import connectfrom selen ...
- Selenium(Python) ddt读取Excel文件数据驱动
首先, 引入xlrd模块: ExcelDDT.py: import unittestfrom time import sleep from ddt import ddt, datafrom selen ...
- Selenium(Python) ddt读取CSV文件数据驱动
import csvimport unittestfrom time import sleep from ddt import ddt, data, unpackfrom selenium impor ...
- Docker容器日志管理最佳实践
目录 一 .Docker 引擎日志 二.容器日志 2.1.常用查看日志命令--docker logs 2.2 .Docker 日志 驱动 三. 生产环境中该如何储存容器中的日志 一.当是完全是标准输出 ...
- LOG日志溯源取证总结
windows操作系统事件日志 C:\Windows\System32\winevt\Logs\ *( XP C:\Windows\System32) 应用程序日志 App Event.Evtx(Ap ...
- docker容器日志管理
docker容器日志分为两类:docker引擎日志(Docker本身运行的日志)和容器日志(各个容器内产生的日志) 一.Docker引擎日志: Centos系统下的docker引擎日志一般给syste ...
随机推荐
- 转帖:弹性布局(display:flex;)属性详解
它之所以被称为 Flexbox ,是因为它能够扩展和收缩 flex 容器内的元素,以最大限度地填充可用空间.与以前布局方式(如 table 布局和浮动元素内嵌块元素)相比,Flexbox 是一个更强大 ...
- appium自动化时,automatic server里面desired capabilities的json representation设置
一点一点来,记号下: 大体格式如下: { "platformName": "Android", "platformVersion": &qu ...
- vlan划分和设置
今天用ensp模拟一个交换机vlan的划分和设置 先上拓扑图: 目标要实现每台电脑都能相互ping通并且都能ping通1.1.1.1/30 简单分析一下,先看交换机sw3,sw3直接和路由器相连,要实 ...
- ImageUtils excel 中 emf 转图片(解决图片上部分显示不全问题)图片转文字
excel 中ActiveX 工具 中的textbox ,以及公式 解析后为emf 图片, emf 转图片(解决图片上部分显示不全问题) 图片转文字 /*********************** ...
- 使用Wireshark查看HTTPS中TLS握手过程
通过使用Wireshark抓包分析TLS握手的过程,可以更容易理解和验证TLS协议,本文将先介绍Wireshark解密HTTPS流量的方法,然后分别验证TLS握手过程和TLS会话恢复的过程. 一.使用 ...
- 2022中职组网络空间安全 A模块
A-1任务一 登录安全加固 1.密码策略(Windows,Linux) 主要是针对windows和Linux的系统加固,类似于运维的题目 a.设置最短密码长度为15: 这里并没有说明具体是Window ...
- operator简介
原理 operator 是一种 kubernetes 的扩展形式,利用自定义资源对象(Custom Resource)来管理应用和组件,允许用户以 Kubernetes 的声明式 API 风格来管理应 ...
- 使用float进行比较问题处理
float compare Abstract 使用float数据进行精确计算和比较,可能由于精度问题导致程序逻辑异常. Explanation 使用float数据进行比较,计算机表达double和fl ...
- 中国科学院2019年大学生数学夏令营考试试题 选做 (Mathematica练习)
目录 试题 1 6 9 solution to (1) solution to (2) 相关读物 试题 选择性地做一些,没有对答案.能机器算的我就不拿纸笔算了,当然实际考试是笔试... 不定期更新 1 ...
- Android开发踩坑日记
ViewModelProviders被弃用,改为ViewModelProvider ViewModelProvider使用方法 MyViewModel model = new ViewModelPro ...