自动化框架--log日志封装

一: 封装log模块, 在自动化测试中日志输出,在配置文件中配置需输出的位置 ,  1为输出, 0不输出。

1,console_output_on = 1 输出到控制台
2,file_output_on =1  输出到txt文件中
configparser 模块可以从配置文件中获取数据

Log.py

 1 import logging
 2 import sys
 3 import configparser
 4
 5 class Log:
 6     def __init__(self):
 7         pass
 8
 9     def __new__(cls):
10         if  not hasattr(cls,‘instance‘):
11             cls._instance = super(Log, cls).__new__(cls)
12             conf = configparser.ConfigParser()
13             conf.read(‘log_config.ini‘,encoding=‘utf-8‘)
14             cls._instance.level = conf.get(‘logging‘,‘level‘)
15             cls._instance.name = conf.get(‘logging‘, ‘logger_name‘)
16             cls._instance.path = conf.get(‘logging‘, ‘file_path‘)
17             cls._instance.formatter = conf.get(‘logging‘, ‘formatter‘)
18             cls._instance.format = cls._instance.formatter.replace(‘|‘, ‘%‘)
19             cls._instance.console_output_on = conf.getint(‘logging‘, ‘console_output_on‘)
20             cls._instance.file_output_on = conf.getint(‘logging‘, ‘file_output_on‘)
21             cls._instance.logger =logging.getLogger(‘test‘)
22             cls._instance.log()
23         return cls._instance
24
25
26     def get_log(self):
27         return self.logger
28
29
30     def log(self):
31         if self.console_output_on == 1:
32             self.logger.setLevel(self.level)
33             # 设置log.txt路径
34             #设置控制台输出日志
35             sh = logging.StreamHandler(sys.stderr)
36             # 设置格式
37             formatter = logging.Formatter(self.format)
38             sh.setFormatter(formatter)
39             self.logger.addHandler(sh)
40
41         if  self.file_output_on==1:
42             self.logger.setLevel(self.level)
43             # 设置log.txt路径
44             # 设置文件输入日志地址
45             #最多备份5个日志文件,每个日志文件最大10M,这个Handler类似于上面的FileHandler,但是它可以管理文件大小。
46             # 当文件达到一定大小之后,它会自动将当前日志文件改名,然后创建 一个新的同名日志文件继续输出
47             #fh = logging.RotatingFileHandler(self.path,maxBytes=10*1024*1024,backupCount=5)
48             fh = logging.FileHandler(self.path)
49             # 设置格式
50             formatter = logging.Formatter(self.format)
51             fh.setFormatter(formatter)
52             self.logger.addHandler(fh)
53             return self.logger
54
55 log = Log().get_log()

二: 配置文件设置

 1 [logging]
 2 level=DEBUG
 3 logger_name=test
 4 file_path=H:\pycharm\untitled2\python_study\log\log.txt
 5 formatter=[|(asctime)s]:|(filename)s  [line:|(lineno)d] |(levelname)s : |(message)s |(funcName)s
 6 console_output_on=1
 7 file_output_on=1
 8
 9 [level]
10 日志等级: debug, info,warning,error,critical

三: 测试文件

 1 from log.Log import *
 2 import codecs
 3 log.info(‘this is testing‘)
 4
 5 def fun(x,y):
 6     """随意测试"""
 7     return x/y
 8
 9 try:
10     fun(2,0) >0
11 except Exception as e:
12     log.error(‘分母不能为0 {}‘.format(e))

四:日志输出 log.txt

五: 目录

时间: 2024-12-16 22:44:53

自动化框架--log日志封装的相关文章

捕获异常、存sd卡、封装请求头体、加密map值、网络工具类、生成Json、Https协议、传log日志到服务器、app崩溃友好重启

点击打开链接,免积分下载 在集成了统计SDK(友盟统计,百度统计等)之后,有一个非常有利于测试的功能:错误分析!此功能能够将程序在运行中碰到的崩溃(runtimeException)问题反馈到服务器,帮助开发者改善产品,多适配机器.然而在公司android开发中不集成这些SDK,那应该怎么实现这样的功能呢?下面让我们来看下如何使用UncaughtExceptionHandler来捕获异常. 在Android开发中,常常会出现uncheched Exception 导致程序的crash,为了提供良

[转] C#实现自动化Log日志

qing2005原文地址 C#实现自动化Log日志 在开发项目的时候,我们不免要使用Log记录日志,使用最多的是Log4Net和EntLib Log,在需要记录日志的代码处加入log.Write(日志信息),假设我需要跟踪业务方法,记录方法的传递参数,执行时间,返回数据等:或者我需要查 看方法的调用关系,希望进入方法的时候自动记录参数信息,出方法时记录结果和执行时间信息.这时就是一个典型的AOP运用,Java在AOP方面是很容易 实现的,因为java有类加载器.但是.Net在AOP方面就不怎么容

scrapy框架【log日志】

scrapy中的debug信息 在scrapy中设置log 1.在settings中设置log级别,在settings.py中添加一行: Scrapy提供5层logging级别: CRITICAL - 严重错误(critical) ERROR - 一般错误(regular errors) WARNING - 警告信息(warning messages) INFO - 一般信息(informational messages) DEBUG - 调试信息(debugging messages) scr

基于Selenium的web自动化框架

1 什么是selenium Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.Selenium WebDriver 和Selenium Grid: Selenium IDE:Firefox的一个扩展,它可以进行录制回放,并可以把录制的操作以多种语言(例如java,python等)的形式导出成测试用例. Selenium WebDriver:提供Web自动化所需的API,主要用作浏览

3分钟手把手带你搭建基于selenium的自动化框架

1 .什么是seleniumSelenium 是一个基于浏览器的自动化工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.Selenium WebDriver 和Selenium Grid: Selenium IDE:Firefox的一个扩展,它可以进行录制回放,并可以把录制的操作以多种语言(例如java,python等)的形式导出成测试用例. Selenium WebDriver:提供Web自动化所需的API,主要用作浏览

API 自动化框架

API 自动化框架 个人认为接口自动化测试使用python语言编写更加简单,但所有接口自动化项目代码的思维都是一样的 1.项目包结构 1.case:存放用例数据的包,将所有用例数据以配置文件形式传入 2.core:核心包 1)config.py:封装ConfigParser解析获取配置文件数据的方法 python的内置模块ConfigParser:不太了解的可以百度 2)log.py:封装log的模块 3)request.py:封装接口测试的方法 4)mysql.py:封装连接数据库的方法 3.

python3+request接口自动化框架

首次书写博客,记录下写的自动化接口框架,框架比较简单,哈哈哈,算是记录下历程把!~~~ 一.本次框架由python3.6 书写 1.准备代码环境,下载python3.6    下载地址:https://www.python.org/downloads 2.下载pycharm 软件. 二.开始创建python接口自动化框架: 1.这是我创建的框架中的各个文件夹,分别有config  配置文件夹.fengzhuang   将接口用get post  两种传输方式进行封装并自动来区分执行. 2.log

属于你自己的自动化框架思路

前言 说起自动化,最先想到的应该就是一些编码技术了. 比如至少会一种语言:java.python.js.c++.vb.等等: 用来设计测试用例和脚本框架,比如至少熟悉一种框架或工具:spring.Django.Selenium.UTF.RobotFramework.JMeter.LR.Appium.Macaca.TestNG.UniTest等等: 用来支持元素抓取,或者写个高大上的页面支持你的框架,可能还需要一些前端的知识:h5.css等等: 当然,也需要一些辅助的东西,比如:jdbc.log4

【腾讯TMQ】5小时搞定谷歌原生自动化框架UiAutomator1.0

[腾讯TMQ]5小时搞定谷歌原生自动化框架UiAutomator1.0 前言 谷歌对UI测试(UI Tetsting)的概念是:确保用户在一系列操作过程中(例如键盘输入.点击菜单.弹出对话框.图像显示以及其他UI控件的改变),你的应用程序做出正确的UI响应. UI测试(功能测试.黑盒测试)的好处是不需要测试者了解应用程序的内部实现细节,只需要知道当执行了某些特定的动作后是否会得到其预期的输出.这种测试方法,在团队合作中可以更好地分离的开发和测试角色.然而常见的UI测试多是以手动方式去执行,然后去