logging模块和ATP(自动化简单框架)

Posted 测试的自我放逐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了logging模块和ATP(自动化简单框架)相关的知识,希望对你有一定的参考价值。

1.自动化

自动化三种:数据驱动,代码驱动,关键字驱动

框架其实就是工具的集合

        数据驱动 :根据数据来去测试的。比如case是存在excel中的数据

        代码驱动: 测试用例都是写代码来测试的。业务case是代码实现

        关键字驱动   主要用于ui自动化  有集成包比如

                点击  -->  .click()

                下一步

                提交  --> .submit()

根据字典中存放的对应的方法,直接只需了解关键字就可以(适合对对吗不了解)

                {

                   ‘点击‘:click()

                   ‘提交‘:submit()

                }

2.日志模块logging

 

import logging    #日志模块导入

# logging
# logging.basicConfig(level=logging.DEBUG,#控制台打印的日志级别
# filename=‘hahah.log‘, #指定log存放的文件
# filemode=‘a‘, #指定写入的模式为追加模式
# format=
# ‘%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s‘
# #日志格式
# ) #这种写法对于中文会乱码并且控制台不再打印日志
日志的四种级别
# logging.debug(‘debug级别,最低级别,一般开发人员用来打印一些调试信息‘)
# logging.info(‘info级别,正常输出信息,一般用来打印一些正常的操作‘)
# logging.warning(‘waring级别,一般用来打印警信息‘)
# logging.error(‘error级别,一般用来打印一些错误信息‘)

 综上情况  从新设计:

# 1、办公室

# 2、负责往控制台里面输出日志信息的

# 3、往日志文件里面写日志的,按天生成日志,清理日志

import logging    #日志模块导入

from logging import handlers     #导入相应

logger = logging.getLogger()  #先实例化一个logger对象,先创建一个办公室

logger.setLevel(logging.DEBUG) #设置日志的级别的人   

# fl = logging.FileHandler(filename=‘a.log‘,mode=‘a‘,encoding=‘utf-8‘)该功能也能写bl功能更强大。

cl = logging.StreamHandler() #负责往控制台输出的人

bl = handlers.TimedRotatingFileHandler(filename=‘a.log‘,when=‘S‘,interval=1,backupCount=3,encoding=‘utf-8‘)   #负责往日志文件出入interval=间隔多长时间生成,backupCount保留几个

#  when,按什么单位,生成日志。

            #S 秒

            # M 分

            # H 小时、

            # D 天、

            # W 每星期(interval==0时代表星期一)

fmt = logging.Formatter(‘%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s‘)   #日志格式 一般固定写法

cl.setFormatter(fmt) #设置控制台输出的日志格式

bl.setFormatter(fmt) #设置文件里面写入的日志格式

logger.addHandler(cl) #把已经调教好的人放到办公室里

logger.addHandler(bl) ##把已经调教好的人放到办公室里

#指定日志的格式

logger.debug(‘我是debug。。。‘)

logger.warning(‘我是waring。。。‘)

思考并查看:

#1、先看看,是不是控制台也有了,文件里面也有了,中文也不是乱码了

#2、每秒运行一次,看看是不是每秒都会产生一个文件

#3、再看看是不是帮你备份3个

 

3.封装写日志的类

import logging

from logging import handlers

class MyLogger():

         def __init__(self,file_name,level=‘info‘,backCount=5,when=‘D‘):

                   logger = logging.getLogger()  # 先实例化一个logger对象,先创建一个办公室

                   logger.setLevel(self.get_level(level))  # 设置日志的级别的人,根据函数传入

                   cl = logging.StreamHandler()  # 负责往控制台输出的人

                   bl = handlers.TimedRotatingFileHandler(filename=file_name, when=when, interval=1, backupCount=backCount, encoding=‘utf-8‘)

                   fmt = logging.Formatter(‘%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s‘)

                   cl.setFormatter(fmt)  # 设置控制台输出的日志格式

                   bl.setFormatter(fmt)  # 设置文件里面写入的日志格式

                   logger.addHandler(cl)

                   logger.addHandler(bl)

                   self.logger = logger

 

         def get_level(self,str):  #方便写日志级别

                   level = {

                            ‘debug‘:logging.DEBUG,

                            ‘info‘:logging.INFO,

                            ‘warn‘:logging.WARNING,

                            ‘error‘:logging.ERROR

                   }

                   str = str.lower()       #这样就会不区分输入的大小写

                   return level.get(str)    #取日志字典中的级别

 

lw_log = MyLogger(‘lw.log‘,‘debug‘)

lw_log.logger.warning(‘哈哈哈‘)

 

4..自我设计一个excel相关的测试框架。

分析所需封装的要求如

            1、获取用例

            2、调用接口

            3、校验结果的

            4、发送测试报告

            5、异常处理

            6、日志

 

以上是关于logging模块和ATP(自动化简单框架)的主要内容,如果未能解决你的问题,请参考以下文章

接口自动化---简单的数据驱动框架ATP(基于excel)

基于excel的自动化框架

自动化测试框架不难,难的是细节(总结片)

WindowsGUI自动化测试框架搭建-日志模块封装(logging模块)

API接口自动化测试框架搭建(十九)-日志模块封装(logging模块)

API 自动化框架