实践(2)logging日志记录
日志是用来帮我们定位问题,通过日志可以更准准确的确定问题所在,我们可以设定日志级别、日志的输出格式等
场景:
在启动APP时,输出start app 日志
导航页跳转到首页过程,输出执行的页面为interest 页面还是welcome 页面
一. 日志
1. 日志流程
首先,导入日志模块
然后,basicconfig 方法创建记录器,为记录做基本配置。
日志级别:level
日志输出路径:Filename
日志输出格式:Format
最后,在需要添加日志的地方输出日志即可,logging.info(’start app‘)
2. 代码实现
import logging
logging.basicConfig(level=logging.INFO,filename='456.log',
format='%(asctime)s %(filename)s[line:%(lineno)d]%(levelname)s%(message)s')
#判断是否首次启动App,跳过导航页到首页
def welcome():
logging.info('skip welcome')
skipwel=driver.find_elements_by_class_name('android.widget.Button')
skipwel[1].click()
try:
driver.find_elements_by_class_name('android.widget.Button')
except NoSuchElementException:
logging.info('run welcome')
welcome()
else:
logging.info('run interest')
skipinterest=driver.find_elements_by_class_name('android.widget.Button')
skipinterest[0].click()
3.运行
在代码中456.log中查看日志输出信息
二 日志模块
上面讲述的是单个功能日志的流程,整个app测试下来有很多功能都需要用到日志,如果每个功能都重复编写,会造成代码冗余
所以,下面我们把日志的配置参数抽离出来,需要时直接调用即可
1.首先建立log.conf文件,存储配置参数等信息
log.conf文件代码:
[loggers]
keys=root,infoLogger
[logger_root]
level=DEBUG
handlers=consoleHander,fileHandler
[logger_infoLogger]
handlers=consoleHander,fileHandler
qualname=infoLogger
propagat=0
[handlers]
keys=consoleHander,fileHandler
[handler_consoleHander]
class=StreamHandler
level=INFO
formatter=form02
args=(sys.stdout,)
[handler_fileHandler]
class=FileHandler
level=INFO
formatter=form01
args=('456.log','a')
[formatters]
keys=form01,form02
2.在需要引用log的py文件中引用log.conf文件
将上文中如下代码删除
logging.basicConfig(level=logging.INFO,filename='456.log',
format='%(asctime)s %(filename)s[line:%(lineno)d]%(levelname)s%(message)s')
更换为:
CON_LOG='log.conf'
logging.config.fileConfig(CON_LOG)
logging=logging.getLogger()