多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

Selenium Python自定义封装一个简单的Log类-自动化测试

更新时间:2023-01-29 09:27:35 作者:多测师 浏览:46

  本文介绍如何写一个Python日志类,用来输出不同级别的日志信息到本地文件夹下的日志文件里。为什么需要日志输出呢,我们需要记录我们测试脚本到底做了什么事情,最好的办法是写事件监听。这个事件监听,对我们现在来说,还是有点复杂去理解,所以我这里,选择封装一个简单的日志类,同样达到这个效果。

Selenium Python自定义封装一个简单的Log类-自动化测试

  问题分析:我们需要封装一个简单的日志类,主要有以下内容:1.生成的日志文件格式是年月日时分秒.log2.生成的xxx.log文件存储在项目根目录下Logs文件夹下3.这个日志类,支持INFO,ERROR两种日志级别4.日志里,每行日志输出,时间日期+执行类名称+日志级别+日志描述解决问题思路:1.在根目录下新建一个Logs的文件夹,如何获取这个Log的相对路径,前面介绍过。2.日志的保存命名,需要系统时间,前面也介绍过时间格式化输出3.Python中有一个logging模块来支持我们自定义封装一个新日志类。4.在脚本里,初始化一个日志类的实例对象,然后去控制输出INFO还是ERROR日志信息。自定义日志类封装如下:logger.py,新建在test包下

  #_*_coding:utf-8_*_

  importlogging

  importos.path

  importtime

  classLogger(object):

  def__init__(self,logger):

  """

  指定保存日志的文件路径,日志级别,以及调用文件

  将日志存入到指定的文件中

  :paramlogger:

  """

  #创建一个logger

  self.logger=logging.getLogger(logger)

  self.logger.setLevel(logging.DEBUG)

  #创建一个handler,用于写入日志文件

  rq=time.strftime('%Y%m%d%H%M',time.localtime(time.time))

  log_path=os.path.dirname(os.getcwd)+'/Logs/'

  log_name=log_path+rq+'.log'

  fh=logging.FileHandler(log_name)

  fh.setLevel(logging.INFO)

  #再创建一个handler,用于输出到控制台

  ch=logging.StreamHandler

  ch.setLevel(logging.INFO)

  #定义handler的输出格式

  formatter=logging.Formatter('%(asctime)s-%(name)s-%(levelname)s-%(message)s')

  fh.setFormatter(formatter)

  ch.setFormatter(formatter)

  #给logger添加handler

  self.logger.addHandler(fh)

  self.logger.addHandler(ch)

  defgetlog(self):

  returnself.logger

  新写一个测试日志类,相关代码如下:

  #coding=utf-8

  importtime

  fromseleniumimportwebdriver

  fromtest.loggerimportLogger

  mylogger=Logger(logger='TestMyLog').getlog

  classTestMyLog(object):

  defprint_log(self):

  driver=webdriver.Chrome

  mylogger.info("打开浏览器")

  driver.maximize_window

  mylogger.info("最大化浏览器窗口。")

  driver.implicitly_wait(8)

  driver.get("https://www.baidu.com")

  mylogger.info("打开百度首页。")

  time.sleep(1)

  mylogger.info("暂停一秒。")

  driver.quit

  mylogger.info("关闭并退出浏览器。")

  testlog=TestMyLog

  testlog.print_log

  以上内容为大家介绍了自动化测试中的Selenium Python自定义封装一个简单的Log类,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部