在自动化脚本执行过程中,使用Python的日志模块记录在测试用例执行过程中一些重要信息或者错误日志等,用于监控和后续调试脚本。
在pycharm下新建工程,并创建Log.py、Logger.conf以及test_use_log.py三个文件。
Logger.conf配置文件,内容如下:
################################################ ###########propagate 是否继承父类的log信息,0:否 [loggers] keys=root,example01,example02 [logger_root] level=DEBUG handlers=hand01,hand02 [logger_example01] handlers=hand01,hand02 qualname=example01 propagate=0 [logger_example02] handlers=hand01,hand03 qualname=example02 propagate=0 ############################################### [handlers] keys=hand01,hand02,hand03 [handler_hand01] class=StreamHandler level=DEBUG formatter=form01 args=(sys.stderr,) [handler_hand02] class=FileHandler level=DEBUG formatter=form01 args=('e:\AutoTestLog.log', 'a') [handler_hand03] class=handlers.RotatingFileHandler level=INFO formatter=form01 args=('e:\AutoTestLog.log', 'a', 10*1024*1024, 5) ############################################### [formatters] keys=form01,form02 [formatter_form01] format=%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s datefmt=%Y-%m-%d %H:%M:%S [formatter_form02] format=%(name)-12s: %(levelname)-8s %(message)s datefmt=%Y-%m-%d %H:%M:%S
Log.py文件内容:
#encoding=utf-8 import logging.config import logging logging.config.fileConfig("Logger.conf") logger = logging.getLogger("example01") #日志配置文件:多个logger,每个logger,指定不同的handler #handler:设定了日志输出行的格式 #handler:以及设定写日志到文件(是否回滚)?还是到屏幕 #handler:还定了打印日志的级别。 def debug(message): # 打印debug级别的日志方法 print "debug" logger.debug(message) def warning(message): # 打印warning级别的日志方法 logger.warning(message) def info(message): # 打印info级别的日志方法 logger.info(message) if __name__=="__main__": debug("hi") info("gloryroad") warning("hello")
test_use_log.py文件内容如下:
#encoding=utf-8 from selenium import webdriver import unittest import logging # 从当前文件所在目录中导入Log.py文件中所有内容 from Log import * class TestSoGouByObjectMap(unittest.TestCase): def setUp(self): # 启动Firefox浏览器 self.driver = webdriver.Ie(executable_path = "e:\IEDriverServer") def testSoGouSearch(self): debug(u"============== 搜索 ==============") url = "http://www.sogou.com" # 访问搜狗首页 self.driver.get(url) debug(u"访问sogou首页") self.driver.find_element_by_id("query").send_keys(u"光荣之路自动化测试") warning(u"在输入框中输入搜索关键字串“光荣之路自动化测试”"+self.driver.find_element_by_id("query").get_attribute("value")) self.driver.find_element_by_id("stb").click() info(u"点击搜索按钮") debug(u"========== 测试用例执行结束 ==========") def tearDown(self): # 退出IE浏览器 self.driver.quit() if __name__ == '__main__': unittest.main()
执行成功会在e:\AutoTestLog.log产生日志记录,可点击查看。