打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
pytest + yaml 框架 -9.logging日志输出和保存

前言

pytest 运行yaml 文件默认在控制台显示简短的信息,当我们需要排查问题时,需开启日志追踪更多的信息。

logging 日志开启

pytest 的日志分2个部分:

  • console 控制台输出的日志

  • log_file  保存到本地文件的日志

本插件默认情况下会记录运行日志保存在项目根目录logs下,以当前时间保存txt文本日志内容。
日志默认保存info级别。
console 控制台默认不输出日志

开启 console 控制台日志

控制台直接运行 pytest 是不会用日志输出的,因为默认仅输出 warning 以上的级别日志
有3种方式启动 console 日志

方法1:命令行带上--log-cli-level参数,设置日志级别

>pytest --log-cli-level=info

方法2:pytest.ini 配置开启日志,并且设置日志级别

[pytest]

log_cli = true
log_cli_level = info

方法3:pytest -o方式重写(即覆盖ini文件中的log相关的命令行参数)

pytest -o log_cli=true -o log_cli_level=INFO

即可在控制台看到日志

-------------------------------------------- live log call --------------------------------------------
2022-12-08 08:30:34 [INFO]: 执行文件-> test_demo.yml
2022-12-08 08:30:34 [INFO]: base_url-> None
2022-12-08 08:30:34 [INFO]: variables-> {}
2022-12-08 08:30:34 [INFO]: 运行 teststeps
2022-12-08 08:30:34 [INFO]: -------- request info ----------
POST http://httpbin.org/post
{
"method": "POST",
"url": "http://httpbin.org/post",
"json": {
"username": "test",
"password": "123456"
}
}
2022-12-08 08:30:35 [INFO]: ------ response info 200 OK 0.495961s------

自定义 console 控制台日志

日志的格式和时间格式也可以自定义设置

[pytest]

log_cli = true
log_cli_level = info
log_cli_format = %(asctime)s %(filename)s:%(lineno)s [%(levelname)s]: %(message)s
log_cli_date_format = %Y-%m-%d %H:%M:%S

自定义保存日志文件

本插件默认情况下会记录运行日志保存在项目根目录logs下,以当前时间保存txt文本日志内容。
日志默认保存info级别。

如果你想改变这些默认的行为,自定义日志文件目录和名称,可以在pytest.ini 配置日志文件
(log_file 相关的结果是保存日志文件到本地)

[pytest]

log_cli = true
log_cli_level = info
log_cli_format = %(asctime)s %(filename)s:%(lineno)s [%(levelname)s]: %(message)s
log_cli_date_format = %Y-%m-%d %H:%M:%S

log_file = ./yoyo.log
log_file_level = debug
log_file_format = %(asctime)s %(filename)s:%(lineno)s [%(levelname)s]: %(message)s
log_file_date_format = %Y-%m-%d %H:%M:%S

命令行参数配置

log日志的配置也可以用命令行参数配置(pytest -h可以查看)

 --no-print-logs              disable printing caught logs on failed tests.
--log-level=LOG_LEVEL     logging level used by the logging module
--log-format=LOG_FORMAT      log format as used by the logging module.
--log-date-format=LOG_DATE_FORMAT      log date format as used by the logging module.
--log-cli-level=LOG_CLI_LEVEL        cli logging level.
--log-cli-format=LOG_CLI_FORMAT        log format as used by the logging module.
--log-cli-date-format=LOG_CLI_DATE_FORMAT      log date format as used by the logging module.
--log-file=LOG_FILE             path to a file when logging will be written to.
--log-file-level=LOG_FILE_LEVEL      log file logging level.
--log-file-format=LOG_FILE_FORMAT      log format as used by the logging module.
--log-file-date-format=LOG_FILE_DATE_FORMAT      log date format as used by the logging module.

还可以使用 pytest -o 方式重写(即覆盖 ini 文件中的 log 相关的命令行参数)

pytest pytest  test_log.py -o log_cli=true -o log_cli_level=INFO

完整的教程已上传到gitee https://gitee.com/yoyoketang/pytest-yaml-yoyo上,如果觉得对你有帮助,可以给个 star

pytest + yaml 框架 -8.一个yaml 文件可以支持多个用例了

pytest + yaml 框架 -7.用例分层机制

pytest + yaml 框架 -6.hooks 钩子功能实现

pytest + yaml 框架 -5.调用内置方法和自定义函数

pytest + yaml 框架 -4.用例参数化parameters功能实现

pytest + yaml 框架 - 3.全局仅登录一次,添加Authentication token认证

pytest + yaml 框架 - 2.extract 提取结果与接口之间的参数关联

pytest + yaml 框架 - 1.我们发布上线了!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Pytest基础指南之常用配置项及实例
日志库 winston 的学习笔记 - 创建一个使用 winston 的 Node.js 应用
pytest封神之路第二步 132个命令行参数用法
关于 logging 的一些琐事
Django logging配置
log4j的2.6.2版本properties配置文件的使用举例
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服