大家好,最近在学习自动化测试如何去打印log日志,首先我要知道为什么要去打印log日志?

答:使用通俗易懂的话表达就是因为在测试的过程中,如果某条测试用例没有执行通过,出现了bug,有了日志的记录就可以把app,或者web,在那个页面,什么样的环境,做了什么操作出现的bug,总结的来说就是以下几个方面

  • 调试 用于开发进行调试,日志能够记录程序目前运行到了那个页面,处于那个状态
  • 辅助定位问题
  • 数据分析

首先在学习logging日志模块的时候,我们先学习日志的级别

然后把日志的级别弄清楚以后,我们在学习如何去打印日志,在打印日志之前我们还需要去设置默认的级别,注意:logging日志是设置的那个级别,就打印那个级别及其以上的,以下的就不打印,默认级别是:warning 级别

- 如何设置默认的logging级别,代码如下

logging.basicConfig(level=logging.DEBUG)

ok,如上,我们设置了logging级别为debug级别,这里就是debug本身及以上都会成功打印

实例demo代码如下

注意:在设置默认的logging级别这段代码一定要放在生成所有的logging最上面,才能作用于你编写的整个python文件

import logging# 设置 logging 默认级别为:DEEBUG 级别,原来默认的级别是:WARNING 级别
logging.basicConfig(level=logging.DEBUG)logging.debug("这是一个debug")
logging.info("i love you,通知我爱你")
logging.warning("这是一个警告,程序可能会出现问题")
logging.error("这是一个错误,程序部分功能无法使用")
logging.critical("这是一个严重的错误,程序都已经无法运行了,完全瘫痪了")

在运行面板输出的结果如下:

- 通过上面的学习还不能够完全满足我们的日常工作需要,我们还可以将输出的结果以文件的形式进行保留,因为在工作当中如果需要发给其他人或者存储到数据库这些工作场景都是存在的,还有我们可以设置生成日志的时间,级别,信息,文件名,行数

@级别:logging日志的级别

@信息:生成的logging信息,自己编写打印的内容

@文件名:执行的python测试文件名称

@行数:指的是自己编写在测试文件当中处于多少行

@时间格式:这个根据个人风格去设置

实例demo代码如下

import logging
logging.basicConfig(filename='web.log',level=logging.DEBUG,format='%(asctime)s [%(levelname)s] %(message)s''%(filename)s:%(lineno)s',datefmt='%m/%d/%Y %I:%M:%S %p')
logging.debug("这是一个调试")
logging.info("这是一个通知")
logging.warning("这是一个警告")
logging.error("这是一个错误,部分功能无法使用")
logging.critical("系统崩溃,发生了严重错误")

点击运行之后,就会在你的pycharm左侧所在python文件的目录下自动生成你刚刚设置的log日志,我这里设置的log日志名为:web.log 如下图

-  除此之外如果说想要整个项目都使用固定的级别、时间、信息、文件名、行数等等去生成我们的logging日志怎么办呢?这里我们可以去新建一个pytest.ini 文件,作用于整个项目,下面我将我写好的放到下面,大家也可以去参考官方文档去配置自己的风格

需要注意2点

第一点:配置文件pytest.ini ,需要放到我们整个项目的下级目录的第一层,如下图

第二点:windows系统在pytest.ini里面将所有的去掉,因为编码不支持(macos和Linux不用)

[pytest]
;日志开关 true false
log_cli = true
;日志级别
log_cli_level = debug
;打印详细日志,相当于命令行加 -vs
addopts = --capture=no
;日志格式
log_cli_format = %(asctime)s [%(levelname)s] %(message)s (%(filename)s:%(lineno)s)
;日志时间格式
log_cli_date_format = %Y-%m-%d %H:%M:%S
;日志文件位置
log_file = ./test.log
;日志文件等级
log_file_level = debug
;日志文件格式
log_file_format = %(asctime)s [%(levelname)s] %(message)s (%(filename)s:%(lineno)s)
;日志文件日期格式
log_file_date_format = %Y-%m-%d %H:%M:%S

到这里,学习完上面的logging日志的生成,就可以解决工作大部分问题了,当然除此之外,还可以去深度学习一下,logging日志生成原理,它是按照模块去实现的,由记录器,格式器,处理器 组成的。详细的可以看官方文档:日志常用指引 — Python 3.10.1 文档

大家有问题欢迎大家留言,互相学习,共同进步,fighting~

自动化测试如何生成log日志相关推荐

  1. php如何写log日志,用php生成log日志

    楼盘列表 $(function() { //获取网址参数 var url = document.URL; var urlArr = url.split("/"); var urlU ...

  2. 解决log4j生成的log日志文件读写权限问题

    java web项目使用非管理员用户部署到Unix/Linux Weblogic服务器上时,由于weblogic 的$DOMAINS_HOME/bin/startWeblogic.sh文件中配置的um ...

  3. linux日志生成速率统计,Linux学习29-awk提取log日志信息,统计日志里面ip访问次数排序...

    前言 有一段log日志,需从日志里面分析,统计IP访问次数排序前10名,查看是否有异常攻击. 日志提取 如下日志,这段日志包含的信息内容较多,我们希望提取ip,访问时间,请求方式,访问路径(不带参数) ...

  4. Android中对Log日志文件的分析

    Android中对Log日志文件的分析 如何分析和研究Log文件 ,如何看日志信息 Log 在android中的地位非常重要,要是作为一个android程序员不能过分析log这关,算是android没 ...

  5. 如何设置WebLogic生成的日志文件的权限?

    在运维的过程中,有时我们需要以有别于启动WebLogic的用户去访问或收集日志等信息,以及时了解系统运行情况,这就要求日志文件的访问权限是允许其他用户访问的.一般情况下,新生成的文件默认权限是根据操作 ...

  6. python:继承日志模块生成自定义日志

    1 继承日志模块生成自定义日志 from __future__ import absolute_importimport os import sys import time import dateti ...

  7. jeecgboot logback-spring.xml配置不生成新日志文件

    日志文件不随时间生成新得日志文件,一直累积在启动时的生成的日志文件里. 查找资料发现,是TimeBasedRollingPolicy和SizeBasedTriggeringPolicy冲突. 将两个去 ...

  8. android stdio 日志追踪,通过检测您的应用生成跟踪日志

    通过检测您的应用生成跟踪日志 要生成应用执行的函数跟踪,可使用 [ Debug ] 类设置您的应用. 通过这种方式设置应用,可让您更精确地控制设备何时开始和停止记录跟踪信息. 同时,设备还能使用您指定 ...

  9. Android SIGABRT的可能原因及开启手机Log日志

    问题:bugly中崩溃分析SIGABRT 手机信息: 例一: 设备机型:模拟器SIMULATOR ANDROID 系统版本:Android 6.0.1,level 23 ROM:OnePlus/One ...

最新文章

  1. windows服务器连接linux nfs,windows设置通过NFS连接到Linux共享数据
  2. HDU OJ Super Jumping! Jumping! Jumping!
  3. 编程语言的排名取决于应用场景和主要公司的需求
  4. VR与游戏完美结合?斯皮尔伯格导演的《玩家一号》发布预告片
  5. 高性能的MySQL(2)慢查询
  6. arcgis flexviewer中由Application向widget传值
  7. Ubuntu设置终端相对短路径
  8. 未能正确加载包“Microsoft.Data.Entity.Design.Package.MicrosoftDataEntityDesignPackage
  9. 4. ex 命令(1)
  10. eps图片怎样用html显示,eps图片用什么软件打开
  11. word审阅 去除word回车换行时出现的竖线的方法
  12. pycharm 添加已有文件
  13. 算法为啥子那么难【转】
  14. 超级服务器防熊系统教程,关于服务器防熊办法
  15. C1/C1/C2 カバレッジについて
  16. 苹果即将量产microLED,将迫使三星等加快该项技术的进展
  17. Zigbee基础理论知识总结
  18. 优学院计算机基础网课答案,最新网课答案2020优学院大学计算机基础
  19. robomongo 连不上mongodb 权限问题
  20. 战略决定结构是什么意思?

热门文章

  1. Java码农进阶之路~JavaWeb开发入门
  2. imshow与显示图像时的全白问题
  3. es6中的generator函数详解
  4. @FeignClient使用详解
  5. Go语言头秃之路(一)
  6. 懒人日报 | 链节点上线“安全情报”节点、“英雄链”诈骗案24位嫌疑人被刑拘、天津自贸区支持区块链验证等技术......
  7. 【数字图像处理】实验五 形态学图像处理
  8. 六区哈卡服务器无限公会,六区哈卡LM54级小牧师很迷茫!(请高手指点)
  9. 物联网终端的防护体系
  10. Web 攻防之业务安全:登录失败信息测试.