zoukankan      html  css  js  c++  java
  • python+Appium自动化:logging配置代码分离

    配置文件信息log.conf:

    [loggers]
    keys=root,simpleExample

    [logger_root]
    level=DEBUG
    handlers=consoleHandler,fileHandler

    [logger_simpleExample]
    level=DEBUG
    handlers=consoleHandler
    qualname=simpleExample
    propagate=0

    [handlers]
    keys=fileHandler,consoleHandler

    [handler_consoleHandler]
    class=StreamHandler
    args=(sys.stdout,)
    level=INFO
    formatter=simpleFormatter

    [handler_fileHandler]
    class=FileHandler
    args=('runlog.log', 'a')
    level=INFO
    formatter=simpleFormatter

    [formatters]
    keys=simpleFormatter

    [formatter_simpleFormatter]
    format=%(asctime)s - %(name)s - %(levelname)s - %(message)s

    使用到如下方法读取配置文件

    logging.config.fileConfig('log.conf')

    再创建一个日志器

    logging=logging.getLogger('simpleExample'或者不填默认root)

    脚本代码:

    # -*- coding: utf-8 -*-#
    
    from appium import webdriver
    import yaml
    import logging
    import logging.config
    from selenium.common.exceptions import NoSuchElementException
    
    file = open('../case/capability.yaml',encoding="utf-8")
    data = yaml.load(file,yaml.FullLoader)
    #
    CON_LOG='log.conf'
    logging.config.fileConfig(CON_LOG)
    logging=logging.getLogger()
    
    
    desired_caps={
                   "platformName": data["platformName"],
                   "platformVersion": data["platformVersion"],
                   "deviceName": data["deviceName"],
                   "appPackage": data["appPackage"],
                   "appActivity": data["appActivity"],
                   "unicodeKeyboard":data["unicodeKeyboard"],
                   "resetKeyboard":data["resetKeyboard"],
                   "noReset": data["noReset"]
                    }
    logging.info("logging app...")
    driver = webdriver.Remote('http://'+str(data['ip'])+':'+str(data['port'])+'/wd/hub',desired_caps)
    
    #检测同意协议弹窗
    def check_agreebtn():
        logging.info("check_agreebtn")
        try:
            agreebtn=driver.find_element_by_id('com.taobao.taobao:id/provision_positive_button')
        except NoSuchElementException:
            logging.info("no agreebtn")
        else:
            agreebtn.click()
    
    def check_localtionbtn():
        logging.info("check_localtionbtn")
        try:
            localtionbtn=driver.find_element_by_id('com.taobao.taobao:id/uik_mdButtonDefaultPositive')
        except NoSuchElementException:
            logging.info("no localtionbtn")
        else:
            localtionbtn.click()
    
    check_agreebtn()
    check_localtionbtn()

    输出日志:

    2019-12-24 10:07:41,427 - root - INFO - logging app...
    2019-12-24 10:08:08,984 - root - INFO - check_agreebtn
    2019-12-24 10:08:11,754 - root - INFO - no agreebtn
    2019-12-24 10:08:11,754 - root - INFO - check_localtionbtn
    2019-12-24 10:08:19,418 - root - INFO - no localtionbtn
    转载请附上原文链接。
  • 相关阅读:
    mongodb基础命令
    mongodb集合的增删
    mongodb的创建删除数据库
    单机版mongodb
    《TCP/IP 详解 卷一》读书笔记-----Ping&Traceroute
    《TCP/IP 详解 卷一》读书笔记 -----第四章 ARP
    《TCP/IP详解 卷一》读书笔记-----第三章 IP
    输入三个整数,xyz,最终以从小到大的方式输出。利用中间变量
    循环语句
    3.输入三个整数,xyz,最终以从小到大的方式输出。利用嵌套。
  • 原文地址:https://www.cnblogs.com/bugbreak/p/12090069.html
Copyright © 2011-2022 走看看