美文网首页
使用python配置日志

使用python配置日志

作者: test小星星 | 来源:发表于2018-10-30 14:25 被阅读10次

    在自动化测试过程中,日志是非常重要的一个部分,特别是当运行出现错误时,需要查看日志来分析定位解决问题。

    实例

    下面通过一个实例来捕捉日志。

    1. 自动打开百度
    2. 搜索selenium

    首先创建日志配置文件log.conf添加如下配置内容:
    log.conf

    [loggers]
    keys=root,infoLogger
    
    [logger_root]
    level=DEBUG
    handlers=consoleHandler,fileHandler
    
    [logger_infoLogger]
    handlers=consoleHandler,fileHandler
    qualname=infoLogger
    propagate=0
    
    ###############################################
    [handlers]
    keys=consoleHandler,fileHandler
    
    [handler_consoleHandler]
    class=StreamHandler
    level=INFO
    formatter=form02
    args=(sys.stdout,)
    
    [handler_fileHandler]
    class=FileHandler
    level=INFO
    formatter=form01
    args=('mylog.log', 'a')
    
    ###############################################
    [formatters]
    keys=form01,form02
    
    [formatter_form01]
    format=%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s
    datefmt=%Y-%e-%d %H:%M:%S
    
    [formatter_form02]
    format=%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s
    datefmt=%Y-%e-%d %H:%M:%S
    

    其次创建.py文件加载配置文件如创建:test_log.py文件
    test_log.py

    # 导入日志模块
    import logging
    import logging.config
    from selenium import webdriver
    
    # 加载日志配置文件
    CON_LOG = 'log.conf'  #注意是log.conf所在路径
    logging.config.fileConfig(CON_LOG)
    logging = logging.getLogger()
    
    # 打开百度
    driver = webdriver.Firefox()
    driver.get('http://www.baidu.com')
    
    try:
        # 输出日志
        logging.info('baidu selenium')
        driver.find_element_by_id('kw').send_keys('selenium')
        driver.find_element_by_id('su').click()
        logging.info('succeed')
    except Exception as e:
        # 输出报错日志
        logging.error(e)
    finally:
        driver.close()
    

    运行结果

    2018-30-30 14:15:48 test_log.py[line:12] INFO baidu selenium
    2018-30-30 14:15:48 test_log.py[line:15] INFO succeed
    
    
    进程已结束,退出代码0
    

    日志文件截图


    日志文件

    下面来看看出错的情况日志的输出格式

    # 改成错误的id
     driver.find_element_by_id('kw1').send_keys('selenium')
    

    运行结果

    2018-30-30 14:20:16 test_log.py[line:12] INFO baidu selenium
    2018-30-30 14:20:16 test_log.py[line:17] ERROR Message: Unable to locate element: [id="kw1"]
    
    
    进程已结束,退出代码0
    

    日志文件


    日志文件

    如果想看更详细的日志信息,可以修改如下代码

    # 增加一个参数exc_info=1
    logging.error(e, exc_info=1)
    

    运行结果

    2018-30-30 14:23:23 test_log.py[line:12] INFO baidu selenium
    2018-30-30 14:23:23 test_log.py[line:17] ERROR Message: Unable to locate element: [id="kw1"]
    Traceback (most recent call last):
      File "F:/PycharmProjects/untitled7/test_log.py", line 13, in <module>
        driver.find_element_by_id('kw1').send_keys('selenium')
      File "C:\Python35\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 285, in find_element_by_id
        return self.find_element(by=By.ID, value=id_)
      File "C:\Python35\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 787, in find_element
        'value': value})['value']
      File "C:\Python35\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 252, in execute
        self.error_handler.check_response(response)
      File "C:\Python35\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 194, in check_response
        raise exception_class(message, screen, stacktrace)
    selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: [id="kw1"]
    

    相关文章

      网友评论

          本文标题:使用python配置日志

          本文链接:https://www.haomeiwen.com/subject/vxiitqtx.html