import logging

# 方法一 logging
# LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"
# DATE_FORMAT = "%m/%d/%Y %H:%M:%S %p"
#
# # logging.basicConfig(filename='my.log', level=logging.DEBUG, format=LOG_FORMAT, datefmt=DATE_FORMAT)
# logging.basicConfig(level=logging.DEBUG) # 默认日志输出到控制台,默认是WARNING
# logging.basicConfig(level=logging.DEBUG,
# format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
# # logging.basicConfig函数对日志的输出格式及方式做相关配置
#
# logging.debug("This is a debug log.")
# logging.info("This is a info log.")
# logging.warning("This is a warning log.")
# logging.error("This is a error log.")
# logging.critical("This is a critical log.")

# 方法二 日志器
# 创建日志器
def get_log():
logger = logging.getLogger()
logger.setLevel(level=logging.DEBUG) # 处理器设置级别,然后可以对每个处理器单独设置级别
# 创建两种不同的日志处理器
console_handler = logging.StreamHandler()
file_handler = logging.FileHandler("./log.txt", mode='a', encoding='utf-8')
# 第三步 设置输出格式1
console_fmt = '%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s'
file_fmt = '%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s'
# 第三步 设置输出格式2
fmt1 = logging.Formatter(fmt=console_fmt)
fmt2 = logging.Formatter(fmt=file_fmt)
# 第三步 设置输出格式3
console_handler.setFormatter(fmt1)
file_handler.setFormatter(fmt2)

# 单独设置每个处理器的级别
file_handler.setLevel(logging.CRITICAL)
console_handler.setLevel(logging.DEBUG)
# 添加处理器
logger.addHandler(console_handler)
logger.addHandler(file_handler)
# logger.debug("这是日志")
# logger.warning('这是警告日志')
# logger.critical('这是严重日志')
return logger

if __name__ == '__main__':
l = get_log()
l.debug("这是日志")
l.warning("这是日志")

详细参考:

标签智能推荐:

1.自动化测试简介pytest+常用参数

执行:pytest --version 可以查看是否下载成功 参数补充:

3.pytest自动化之必须带请求头的接口,以及需要cook

或者: 同上:设置全局变量 csrf_token="#首页接口 或者print(res.json()) 结果是fail,原因可能是需要cookie或session鉴权设置全局变量php_cookie="" 第二种方式:

Novice学Pytest(14)-配置文件pytest.i

一、前言  pytest.ini配置文件可以改变pytest的运行方式,读取配置信息,按指定的方式去运行  pytest里有些文件是非test文件pytest.ini:pytest的主配置文件,可以改变pytest的默认行为conftest...

Novice学Pytest(12)-测试结果生成HTML报告

一、前言  安装pytest-html插件:pip install --user -U pytest-html  关于参数--user的说明:pip install -U packagename 代表进行全局安装,安装后这台机器上所有用户可...

Novice学Pytest(13)-重复执行用例插件pyte

一、前言平常在做功能测试时,经常会遇到某个模块不稳定,偶现一些bug,或者领导临时安排帮忙复现线上比较难出现的bug,我们一般会反复执行多次,最终复现问题自动化运行用例时,也会偶现bug,可以针对某个用例,或者针对某个模块的用例重复执行多次...

Novice学Pytest(11)-失败重跑插件pytest

一、前言  cmd or pycharm的terminal输入命令:pip install -U pytest,安装pytest的同时会安装pytest-rerunfailures。二、rerun所有失败的用例  1、使用--reruns命...

Novice学Pytest(7)-skip和skipif跳过

一、前言pytest.mark.skip 可以标记无法在某些平台上运行的测试功能,或者您希望失败的测试功能希望满足某些条件才执行某些测试用例,否则pytest会跳过运行该测试用例实际常见场景:跳过非移动端的测试,或者跳过依赖于当前不可用的外...

Novice学Pytest(8)-使用自定义标记mark

一、前言  pytest可以支持自定义标记,自定义标记可以把一个移动端项目划分为多个模块,然后指定模块名执行。工作中我们会写yy Android和yy iOS的用例脚本,会指定哪些用例是在yy Android下执行的,哪些用例是yy iOS...

Novice学Pytest(9)-参数化

一、前言  写用例脚本时,只有测试数据和期望结果不一样,但操作步骤是一样的测试用例,可以用参数化。pytest允许在多个级别启用测试参数化pytest.fixture() 允许fixture有参数化功能@pytest.mark.parame...

Novice学Pytest(5)-测试用例执行状态

一、前言  用例脚本执行完成后,每条用例都有自己的状态,常见的状态有:passed:测试通过failed:断言失败error:用例质量不行,代码报错(eg:fixture不存在,fixture里面有报错)xfail:预期失败,加了@pyte...