Python+Selenium进行UI自动化测试项目中,常用的小技巧4:日志打印,longging模块(控制台和文件同时输出)

在前段时间,为了给项目中加入日志功能,就想到了 logging 模块,百度logging一大推,都是各种复制的,并没有找到自己想要的结果;我的目的很简单,就是:在把日志写入文件的同时在控制台输出,更加方便调试,我下面的代码就满足这个功能:

 1 #coding=utf-8
 2
 3 import logging
 4 import time
 5 import commonparameter
 6
 7 class Log:
 8     def __init__(self):
 9         self.logname = commonparameter.log_path + ‘\\‘ + ‘Log‘ +time.strftime(‘%Y-%m-%d‘) + ‘.log‘
10
11     def printconsole(self, level, message):
12         # 创建一个logger
13         logger = logging.getLogger(‘mylogger‘)
14         logger.setLevel(logging.DEBUG)
15         # 创建一个handler,用于写入日志文件
16         fh = logging.FileHandler(self.logname,‘a‘)
17         fh.setLevel(logging.DEBUG)
18         # 再创建一个handler,用于输出到控制台
19         ch = logging.StreamHandler()
20         ch.setLevel(logging.DEBUG)
21         # 定义handler的输出格式
22         formatter = logging.Formatter(‘%(asctime)s - %(name)s - %(levelname)s - %(message)s‘)
23         fh.setFormatter(formatter)
24         ch.setFormatter(formatter)
25         # 给logger添加handler
26         logger.addHandler(fh)
27         logger.addHandler(ch)
28         # 记录一条日志
29         if level == ‘info‘:
30             logger.info(message)
31         elif level == ‘debug‘:
32             logger.debug(message)
33         elif level == ‘warning‘:
34             logger.warning(message)
35         elif level == ‘error‘:
36             logger.error(message)
37         logger.removeHandler(ch)
38         logger.removeHandler(fh)
39
40     def debug(self,message):
41         self.printconsole(‘debug‘, message)
42
43     def info(self,message):
44         self.printconsole(‘info‘, message)
45
46     def warning(self,message):
47         self.printconsole(‘warning‘, message)
48
49     def error(self,message):
50         self.printconsole(‘error‘, message)
51
52 if __name__ == ‘__main__‘:
53     log = Log()
54     log.info(‘info msg1000013333‘)
55     log.debug(‘debug msg‘)
56     log.warning(‘warning msg‘)
57     log.error(‘error msg‘)

ps:

self.logname = commonparameter.log_path + ‘\\‘ + ‘Log‘ +time.strftime(‘%Y-%m-%d‘) + ‘.log‘ #你存放日志的路径

时间: 2024-10-07 05:30:05

Python+Selenium进行UI自动化测试项目中,常用的小技巧4:日志打印,longging模块(控制台和文件同时输出)的相关文章

Python+Selenium进行UI自动化测试项目中,常用的小技巧2:读取配置文件(configparser,.ini文件)

在自动化测试项目中,可能会碰到一些经常使用的但 很少变化的配置信息,下面就来介绍使用configparser来读取配置信息config.ini 读取的信息(config.ini)如下: [config]platformName=AndroidappPackage=com.sheinsideappActivity=.module.GuideActivitybaseUrl=http://0.0.0.0:4723/wd/hubfindElementTimes=10[cmd]openAppium=nod

Python+Selenium进行UI自动化测试项目中,常用的小技巧1:读取excel表,转化成字典(dict)输出

从今天开始我将会把在项目中遇到的问题,以及常用的一些技巧来分享出来,以此来促进自己的学习和提升自己:更加方便我以后的查阅. 现在要说的是:用Python来读取excel表的数据,返回字典(dict),在脚本中进行调用 我直接贴出代码: import xlrd data_path = "F:\data" # 存放excel表的路径xlsname = "userinfo.xlsx" # excel表的名字sheetname = "Sheet1" #

Python+Selenium进行UI自动化测试项目中,常用的小技巧3:写入excel表(python,xlsxwriter)

我们在项目中可能用到excel表生成,下面的代码就是对excel表的操作: 1 import xlsxwriter 2 import datetime 3 4 class write_excel(): 5 def __init__(self,path): 6 now = datetime.datetime.now() 7 fname = 'TestReport' + now.strftime("%Y-%m-%d") 8 self.row = 0 9 self.xl = xlsxwrit

Python+Selenium搭建UI自动化测试框架

Python语言是非常强大的编程语言,很多时候也拿来当脚本语言用. Selenium是web应用测试工具,支持Java.Python等多种语言脚本,支持Chrome.Firefox等多种主流浏览器.主要实现的就是模拟人使用web应用,自动的打开浏览器.打开应用.进入应用进行各种模拟业务操作等等. 接下来,一步一步带领大家实现下Python+Selenium实现使用脚本自动发微博的功能. 1.Python安装 一般Linux系统自带了Python,Windows系统可以参考本人之前文章 [Pyth

自动化测试之Python + selenium = Web UI自动化测试

1.1Python的运行环境 在我决定学习一门新语言Python的时候,Python3已经出来了,目前是Python2与Python3同步维护,Python2拥有大量的类库,但是随着时间的发展,Python3才是以后发展的主流,所以在这里我选择的版本是Python3.安装Python:Python官方网站:https://www.Python.org/ 进入之后选择对应的版本进行下载,Python的下载很简单,下一步的傻瓜式操作就可以了,只是有一点需要注意的是在进到这个界面时(下图)需要勾选上A

JS开发中常用的小技巧

1.获取指定范围内的随机数 function getRadomNum(min,max){ return Math.floor(Math.random() * (max - min + 1)) + min; } 2.随机获取数组中的元素 function getRadomFromArr(arr){ return arr[Math.floor(Math.random()*arr.length)]; } 3.生成从0到指定值的数字数组 function getArray(len) { var arr

前端开发中常用的小技巧整理

1.控制超出部分显示省略(单行): white-space: nowrap; text-overflow:ellipsis; overflow: hidden; 下面使用css3部分控制多行超出部分显示省略(此处适配谷歌内核浏览器): overflow : hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; /* 设置最高值,防止超出

python+selenium遍历某一个标签中的内容

一.python+selenium遍历某一个标签中的内容 举个例子:我要获取列表标签<li></li>的内容 根据python+selenium定位到列表整体,使用for循环获取列表文本:可用于校验列表是否存在你需要的文本内容 1.获取内容不包含嵌套层列表 给出代码: from selenium import webdriver import time d = webdriver.Chrome() d.maximize_window() # 窗口最大化###登录某网站 d.get(

android中常用的小控件------Widgets的使用

好久没有写博客了,都不知博客怎么写了,最近突然想写博客,以帮助更多的人,却又不知道写什么好呢? 好吧  我承认我有点懒惰了,可是程序猿是不应该懒惰的哦,俺要做个好孩子. 好了言归正传,开始介绍下今天的主要内容吧! Widgets一个桌面的小控件    个人认为是很常用的,不知道大神们是不是这么觉得的呢?比如说你开发的一款音乐播放器的软件,可把基本的上一曲和下一曲.暂停的几个功能放在这个小控件里面将它显示在桌面上来,这样就很方便啦,你想要下一曲.上一曲.暂停播放的时候,就不用再打开播放器了,而是直