python学习笔记(日志系统实现)

博主今天在自己的接口自动化框架中添加了日志系统

基于python自带的logging库、包括日志主函数、生成日志文件:

 1 # -*- coding: utf-8 -*-
 2 # 日志系统
 3 # 时间:2017-08-31
 4 # 姓名:xx
 5
 6 import logging
 7 import os
 8 from datetime import datetime
 9
10
11 class MainLog:
12     def __init__(self):
13         pass
14
15     @staticmethod
16     def getLog():
17         logging.basicConfig(
18             # filename=MainLog.logTxt(),    # 日志输出到文件
19             level=logging.DEBUG,
20             format="%(asctime)s - %(levelname)s - %(message)s",
21             datefmt="%Y-%m-%d %H:%M:%S",
22         )
23         return logging
24
25     @staticmethod
26     def logTxt():
27         today_name = datetime.today().strftime("%Y%m%d")
28         log_name = datetime.today().strftime("%Y%m%d%H%M%S") + ".txt"
29         # 新建当天的文件夹路径
30         path = "F:\\Logs\\" + today_name + "\\"
31         if os.path.exists(path):
32             pass
33         else:
34             os.makedirs(path)
35         # 日志文件路径名称
36         file_path = path + log_name
37         return file_path
 1 # -*- coding: utf_8 -*-
 2 # 基础接口请求方法
 3 # 时间:2017-08-31
 4 import requests
 5 from requests.exceptions import ReadTimeout, ConnectionError, RequestException
 6 from Log.main_log import MainLog
 7
 8
 9 class MainResponse:
10     def __init__(self):
11         pass
12
13     @staticmethod
14     def mainPost(url=None, params=None, json=None):
15         u"""
16         url: 接口请求的url
17         params: 接口请求的请求头
18         json: 接口请求的json
19         """
20         logger = MainLog.getLog()
21         try:
22             response = requests.post(url=url, params=params, json=json, timeout=10)
23             code = response.status_code
24             text = response.text
25             logger.debug(u"接口请求地址:")
26             logger.debug(url)
27             logger.debug(u"接口请求头:")
28             logger.debug(params)
29             logger.debug(u"接口请求参数:")
30             logger.debug(json)
31             logger.debug(u"接口请求返回码:")
32             logger.debug(code)
33             logger.debug(u"接口返回信息:")
34             logger.debug(text)
35             return text
36         except ReadTimeout:
37             logger.error(u"请求超时")
38         except ConnectionError:
39             logger.error(u"请求连接错误")
40         except RequestException:
41             logger.error(u"返回错误")

然后在自己封装的post请求中把日志格式加进去

DEBUG级别的是普通的内容

ERROR级别的是错误场景

最后在unittest框架中执行自动化用例、生成测试报告:

时间: 2024-11-05 02:17:34

python学习笔记(日志系统实现)的相关文章

python学习笔记7:装饰器

一.什么是装饰器 装饰器,它本身是一个函数. 装饰器的作用在于,在不改变现有函数的调用方式的前提下,给其新增一些功能:这些功能一般都是公用的. 它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处理.缓存.权限校验等场景.(此句引用:https://zhuanlan.zhihu.com/p/25648515) 二.学装饰器的前提知识 1.函数即变量 2.高阶函数 3.函数嵌套 以上三个知识点,在我的上一篇博客'python学习笔记6:函数'里 有详细介绍,这里不赘述 三.一个例子 1.场

OpenCV之Python学习笔记

OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书<OpenCV Computer Vision with Python>,于是就看一遍,顺便把自己掌握的东西整合一下,写成学习笔记了.更需要的朋友参考. 阅读须知: 本文不是纯粹的译文,只是比较贴近原文的笔记:         请设法购买到出版社出版的书,支持正版. 从书名就能看出来本书是介绍在Pytho

Python学习笔记--未经排版

Python 学习笔记 Python中如何做到Print() 不换行 答:Print("输出内容",end='不换行的分隔内容'),其中end=后面为2个单引号 注:在Python 2.x中,Print "输出内容", 即在输出内容后加一逗号 Python中 is 和 == 的区别 答:Python中的对象包含三要素:id.type.value 其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值 is判断的是a对象是否就是b对象,是通过id来

python 学习笔记 14 -- 常用的时间模块之datetime

书接上文,前面我们讲到<常用的时间模块之time>,这次我们学习datetime -- 日期和时间值管理模块 使用apihelper 查看datetime 模块,我们可以看到简单的几项: date       ---  日期对象,结构为date(year, month, day) time       ---  时间值对象,结构为 time([hour[, minute[, second[, microsecond[, tzinfo]]]]]).时间对象所有的参数都是可选的.tzinfo 可以

python学习笔记之函数总结--高阶函数以及装饰器

python学习笔记之函数总结--高阶函数以及装饰器 Python特点: 1.不是纯函数式编程(允许变量存在): 2.支持高阶函数(可以传入函数作为变量): 3.支持闭包(可以返回函数): 4.有限度的支持匿名函数: 高阶函数: 1.变量可以指向函数: 2.函数的参数可以接收变量: 3.一个函数可以接收另一个函数作为参数: 下面我将示例一些函数的写法以及使用,并说明python中函数的特性: 1.基本的高阶函数示例: #!/usr/bin/env python def func():      

python 学习笔记 13 -- 常用的时间模块之time

Python 没有包含对应日期和时间的内置类型,不过提供了3个相应的模块,可以采用多种表示管理日期和时间值: *    time 模块由底层C库提供与时间相关的函数.它包含一些函数用于获取时钟时间和处理器的运行时间,还提供了基本解析和字符串格式化工具 *    datetime 模块为日期.时间以及日期时间值提供一个更高层接口.datetime 中的类支持算术.比较和时区配置. *    calendar 模块可以创建周.月和年的格式化表示.它还可以用来计算重复事件.给定日期是星期几,以及其他基

python学习笔记12-python面向对象

python学习笔记12-python面向对象 python一切皆对象 一.基本概念 1.面向对象和面向过程 面向对象编程:C++,Java,Python 面向过程编程:函数式编程,C程序等 2.类和对象 类:是对事物的抽象,比如:人类,球类 对象:是类的一个实例,比如:足球,篮球,对象就是对类的实例化 属性:五官,眼,鼻子,理解为一个变量,静态属性 方法:对人来说,吃穿住行,理解为一个函数,动态方法 实例说明:球类可以对球的特征和行为进行抽象,然后可以实例化一个真实的球实体出来 3.为什么要使

python 学习笔记 13 -- 经常使用的时间模块之time

Python 没有包括相应日期和时间的内置类型.只是提供了3个相应的模块,能够採用多种表示管理日期和时间值: *    time 模块由底层C库提供与时间相关的函数.它包括一些函数用于获取时钟时间和处理器的执行时间,还提供了基本解析和字符串格式化工具 *    datetime 模块为日期.时间以及日期时间值提供一个更高层接口. datetime 中的类支持算术.比較和时区配置. *    calendar 模块能够创建周.月和年的格式化表示. 它还能够用来计算反复事件.给定日期是星期几,以及其

python学习笔记1——安装python

python学习笔记1--安装python centos和ubuntu的python2.7的安装方法参考:http://daixuan.blog.51cto.com/5426657/1767325 1.查看当前python版本并且 [[email protected] ~]# python -V Python 2.6.6 2.安装eple-release扩展源 [[email protected] ~]# yum install -y epel-release 3.安装pip [[email p

python &nbsp; 学习笔记 (核心)

python    学习笔记 (核心) Python解释器从头到尾一行接一行执行脚本 # -*- coding: UTF-8 -*-    //字符编码 不区分单引号和双引号,x='hello',x[0],x[-1]指最后一个字符,x[2:4]取子串, '''hello''' #hello三引号会保留文本输入时的换行符制表符等不需要转义,用于多行原样输入保存 'hello'+'world' #字符串拼接,'hello'*2 #字符串重复 help(fun) #帮助,help(module.met