zoukankan      html  css  js  c++  java
  • python自动化之UI自动化框架搭建四--完成(关键字驱动)

    十六、KeyWordsFrameWork目录下新建RunTest.py文件,运行文件,查看允许结果

    # encoding = utf-8
    from KeyWordsFrameWork.testScripts.TestCreatBuilding import TestCreatBuild
    
    
    if __name__ == '__main__':
        TestCreatBuild()

    十七、通过logging模块,为关键字驱动框架加入打印日志功能。在config包下新建Logger.conf的文件,用于配置日志级别信息

    [loggers]
    keys=root,file,fileAndConsole
    
    [logger_root]
    level=DEBUG
    handlers=consoleHandler
    
    [logger_file]
    level=INFO
    qualname = file
    handlers=fileHandler
    propagate=0
    
    [logger_fileAndConsole]
    level=INFO
    qualname=fileAndConsole
    handlers=consoleHandler,rotatingFileHandler
    propagate=0
    
    [handlers]
    keys=fileHandler,consoleHandler,rotatingFileHandler
    
    [handler_consoleHandler]
    class=StreamHandler
    level=DEBUG
    formatter=simpleFormatter
    args=(sys.stdout,)
    
    [handler_fileHandler]
    class=FileHandler
    level=INFO
    formatter=simpleFormatter
    args=('log/MDPUiTestLogfile.log', 'a')
    
    [handler_rotatingFileHandler]
    class=handlers.RotatingFileHandler
    level=INFO
    formatter=simpleFormatter
    args=('log/MDPUiTestLogfile.log', 'a', 10*1024*1024, 5)
    
    [formatters]
    keys=simpleFormatter
    
    [formatter_simpleFormatter]
    format=%(asctime)s %(filename)s %(levelname)s : %(message)s
    datefmt=%Y-%m-%d %H:%M:%S

    说明:

    [loggers]
    # 定义logger模块,root是父类,必需存在的,其它的是自定义。
    # logging.getLogger(NAME)便相当于向logging模块注册了一种日志打印
    # name 中用 . 表示 log 的继承关系

    [handlers]
    # 定义handler

    [formatters]
    # 定义格式化输出
     
    [logger_root]
    # 实现上面定义的logger模块,必需是[logger_xxxx]这样的形式

    # [logger_xxxx] logger_模块名称
    # level 级别,级别有DEBUG、INFO、WARNING、ERROR、CRITICAL
    # handlers 处理类,可以有多个,用逗号分开
    # qualname logger名称,应用程序通过 logging.getLogger获取。对于不能获取的名称,则记录到root模块。
    # propagate 是否继承父类的log信息,0:否 1:是

    [handler_infohandler]
    # [handler_xxxx]
    # class handler类名
    # level 日志级别
    # formatter,上面定义的formatter
    # args handler初始化函数参数
     
     

    [formatter_form01]
    # 日志格式
    #--------------------------------------------------
    # %(asctime)s 年-月-日 时-分-秒,毫秒 2013-04-26 20:10:43,745
    # %(filename)s 文件名,不含目录
    # %(pathname)s 目录名,完整路径
    # %(funcName)s 函数名
    # %(levelname)s 级别名
    # %(lineno)d 行号
    # %(module)s 模块名
    # %(message)s 消息体
    # %(name)s 日志模块名
    # %(process)d 进程id
    # %(processName)s 进程名
    # %(thread)d 线程id
    # %(threadName)s 线程名

    十八、在util包中新建Log.py文件,用于初始化日志对象

    # encoding = utf-8
    import logging.config
    from KeyWordsFrameWork.config.VarConfig import parenthDirPath
    
    # 读取日志配置文件
    print(parenthDirPath)
    logging.config.fileConfig(parenthDirPath + "/config/Logger.conf")
    # 选择一个日志格式
    logger = logging.getLogger('fileAndConsole')
    
    
    def debug(message):
    
        # 定义debug级别日志打印方法
        logger.debug(message)
    
    
    def info(message):
    
        # 定义info级别日志打印方法
        logger.info(message)
    
    
    def warning(message):
    
        # 定义warning级别日志打印方法
        logger.warning(message)

    十九、在根目录(KeyWordsFrameWork)下创建log目录,然后修改testScripts包中的 test文件

     同上,在需要打印日志的位置加上对应打印日志方法即可

    到此关键字驱动框架全部搭建完成

    附框架截图:

  • 相关阅读:
    C#线程的IsBackgroud属性动态设置
    asp.net 异步
    IBM一些Java文章
    (一)Apollo配置中心介绍
    样式表中的 element.style样式如何修改
    jquery中的append和js原生中的innerhtml的区别
    如何在datagrid中的column获取json数据
    快速排序
    冒泡排序
    二进制中有多少个1?
  • 原文地址:https://www.cnblogs.com/huwang-sun/p/15379657.html
Copyright © 2011-2022 走看看