一、安装

①执行语句: pip install ddt

②在单元测试中DDT用来进行数据驱动,数据与测试代码分离(数据发生变化时,用例可以保持不变),一组数据来执行相同的操作。

一般进行接口测试时,每个接口的传参都不止一种情况,一般会考虑正向、逆向等多种组合,所以在测试一个接口时,通常会编写多条case,而这些除了传参不同外,并没有什么区别。这个时候就可以利用ddt来管理测试数据,提高代码复用率。

二、ddt模块包含类的装饰器ddt和两个方法装饰器data

  • ddt.ddt:装饰类,也就是继承TestCase的类。

  • ddt.data:装饰测试方法,参数是一系列的值,数据直接使用逗号隔开。

  • ddt.file_data:装饰测试方法,参数是文件名。文件可以是json或者yaml类型。

    注意,如果文件是以“.yml”或者".yaml"结尾,ddt会作为yaml类型处理,其他文件都会作为json文件处理。

    如果文件是列表,列表的值会作为测试用例参数,同时,会作为测试用例方法名后缀显示。

    如果文件是字典,字典的key会作为测试用例方法的后缀显示,字典的value会作为测试用例参数。

  • ddt.unpack:传递的是复杂的数据结构时使用,比如使用列表或者元组,添加unpack后,ddt会自动把元组或者列表对应到多个参数上。

例子

方法模块

用例模块

数据处理模块

配置模块

运行模块

运行结果:

测试报告:

三、日志

1.日志:记录系统的操作及代码的运行。

2.日志五个级别:debug--info--warning--error--critical 从左到右越来越严重

3.日志收集器

规则:只有级别大于或等于日志收集器指定级别的日志记录才会被输出,小于该级别的日志记录将会被丢弃。

例子

运行结果:

4.自定义日志

运行结果:

控制台

文件

拓展:

Formatter对象定义了最终log信息的顺序,结构和内容,规定了日志输出按照什么样的格式,默认的时间格式为%Y-%m-%d %H:%M:%S

%(name)s

logger的名字

%(levelno)s

数字形式的日志级别

%(levelname)s

文本形式的日志级别

%(pathname)s

调用日志输出函数的模块的完整路径名,可能没有

%(filename)s

调用日志输出函数的模块的文件名

%(module)s

调用日志输出函数的模块名

%(funcName)s

调用日志输出函数的函数名

%(lineno)d

调用日志输出函数的语句所在的代码行

%(created)f

当前时间,用UNIX标准的表示时间的浮点数表示

%(relativeCreated)d

输出日志信息时的,自Logger创建以来的毫秒数

%(asctime)s

字符串形式的当前时间。默认格式是“2003-0-08 16:49:45,896”。逗号后面是毫秒数

%(thread)d

线程ID,可能没有

%(threadName)s

线程名,可能没有。

%(process)d

进程ID,肯能没有

%(message)s

用户输出的消息

python ddt及logging(九)的更多相关文章

  1. Python标准模块--logging

    1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...

  2. Python日志输出——logging模块

    Python日志输出——logging模块 标签: loggingpythonimportmodulelog4j 2012-03-06 00:18 31605人阅读 评论(8) 收藏 举报 分类: P ...

  3. python日志模块logging

    python日志模块logging   1. 基础用法 python提供了一个标准的日志接口,就是logging模块.日志级别有DEBUG.INFO.WARNING.ERROR.CRITICAL五种( ...

  4. Python学习笔记(九)

    Python学习笔记(九): 装饰器(函数) 内置函数 1. 装饰器 1. 作用域 2. 高阶函数 3. 闭包 如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就 ...

  5. Python自建logging模块

    本章将介绍Python内建模块:日志模块,更多内容请从参考:Python学习指南 简单使用 最开始,我们用最短的代码体验一下logging的基本功能. import logging logger = ...

  6. python中常用的九种数据预处理方法分享

    Spyder   Ctrl + 4/5: 块注释/块反注释 本文总结的是我们大家在python中常见的数据预处理方法,以下通过sklearn的preprocessing模块来介绍; 1. 标准化(St ...

  7. Python实战之logging模块使用详解

    用Python写代码的时候,在想看的地方写个print xx 就能在控制台上显示打印信息,这样子就能知道它是什么了,但是当我需要看大量的地方或者在一个文件中查看的时候,这时候print就不大方便了,所 ...

  8. Python学习系列(九)(IO与异常处理)

    Python学习系列(九)(IO与异常处理) Python学习系列(八)( 面向对象基础) 一,存储器 1,Python提供一个标准的模块,称为pickle,使用它既可以在一个文件中存储任何Pytho ...

  9. python日志模块logging学习

    介绍 Python本身带有logging模块,其默认支持直接输出到控制台(屏幕),或者通过配置输出到文件中.同时支持TCP.HTTP.GET/POST.SMTP.Socket等协议,将日志信息发送到网 ...

随机推荐

  1. pandas中.value_counts()用于统计数据集中的某一列

    value_counts()是一种查看表格某列中有多少个不同值的快捷方法,并计算每个不同值有在该列中有多少重复值.value_counts()是Series拥有的方法,一般在DataFrame中使用时 ...

  2. python 实例化 类方法 静态方法 成员变量 实例方法 等调用

    1.参考代码如下 # coding:utf-8 class student: # 成员变量 ok = None like = '八戒你瘦了' # 实例方法 def __init__(self): # ...

  3. 【神经网络与深度学习】【C/C++】使用blas做矩阵乘法

    使用blas做矩阵乘法   #define min(x,y) (((x) < (y)) ? (x) : (y)) #include <stdio.h> #include <st ...

  4. 2019icpc南昌邀请赛B Polynomial (拉格朗日插值法)

    题目链接:https://nanti.jisuanke.com/t/40254 题意: 思路: 这题要用到拉格朗日插值法,网上查了一下,找到一份讲得特别好的: -------------------- ...

  5. PTA(Basic Level)1038.统计同成绩学生

    本题要求读入 N 名学生的成绩,将获得某一给定分数的学生人数输出. 输入格式: 输入在第 1 行给出不超过 105 的正整数 N,即学生总人数.随后一行给出 N 名学生的百分制整数成绩,中间以空格分隔 ...

  6. 【转贴】Windows virtio 驱动

    Windows virtio 驱动 https://blog.51cto.com/dangzhiqiang/1833615 去年去中建总部的时候用过. 发现很多搞openstack的人都不清楚这一块的 ...

  7. Centos 7 下Gitlab 自启动设置

    禁止 Gitlab 开机自启动: systemctl disable gitlab-runsvdir.service 启用 Gitlab 开机自启动: systemctl enable gitlab- ...

  8. @Select 数据表的字段与实体类的属性值

    添加@Results @Select("select * from goods") @Results({ @Result(property = "id", co ...

  9. FFmpeg4.0笔记:采集桌面

    Github https://github.com/gongluck/FFmpeg4.0-study/tree/master/Cff // 采集桌面 void test_desktop() { boo ...

  10. MySQL中的SQL的常见优化策略

    MySQL中的SQL的常见优化策略 MySQL中的索引优化 MySQL中的索引简介 1 避免全表扫描对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索 ...