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

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

 # -*- coding: utf-8 -*-
# 日志系统
# 时间:2017-08-31
# 姓名:xx import logging
import os
from datetime import datetime class MainLog:
def __init__(self):
pass @staticmethod
def getLog():
logging.basicConfig(
# filename=MainLog.logTxt(), # 日志输出到文件
level=logging.DEBUG,
format="%(asctime)s - %(levelname)s - %(message)s",
datefmt="%Y-%m-%d %H:%M:%S",
)
return logging @staticmethod
def logTxt():
today_name = datetime.today().strftime("%Y%m%d")
log_name = datetime.today().strftime("%Y%m%d%H%M%S") + ".txt"
# 新建当天的文件夹路径
path = "F:\\Logs\\" + today_name + "\\"
if os.path.exists(path):
pass
else:
os.makedirs(path)
# 日志文件路径名称
file_path = path + log_name
return file_path
 # -*- coding: utf_8 -*-
# 基础接口请求方法
# 时间:2017-08-31
import requests
from requests.exceptions import ReadTimeout, ConnectionError, RequestException
from Log.main_log import MainLog class MainResponse:
def __init__(self):
pass @staticmethod
def mainPost(url=None, params=None, json=None):
u"""
url: 接口请求的url
params: 接口请求的请求头
json: 接口请求的json
"""
logger = MainLog.getLog()
try:
response = requests.post(url=url, params=params, json=json, timeout=10)
code = response.status_code
text = response.text
logger.debug(u"接口请求地址:")
logger.debug(url)
logger.debug(u"接口请求头:")
logger.debug(params)
logger.debug(u"接口请求参数:")
logger.debug(json)
logger.debug(u"接口请求返回码:")
logger.debug(code)
logger.debug(u"接口返回信息:")
logger.debug(text)
return text
except ReadTimeout:
logger.error(u"请求超时")
except ConnectionError:
logger.error(u"请求连接错误")
except RequestException:
logger.error(u"返回错误")

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

DEBUG级别的是普通的内容

ERROR级别的是错误场景

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

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

  1. Python学习笔记(六)

    Python学习笔记(六) Ubuntu重置root密码 Ubuntu 16.4 目录结构 Ubuntu 命令讲解 1. Ubuntu重置root密码 启动系统,显示GRUB选择菜单(如果默认系统启动 ...

  2. Python学习笔记,day5

    Python学习笔记,day5 一.time & datetime模块 import本质为将要导入的模块,先解释一遍 #_*_coding:utf-8_*_ __author__ = 'Ale ...

  3. python学习笔记--Django入门0 安装dangjo

    经过这几天的折腾,经历了Django的各种报错,翻译的内容虽然不错,但是与实际的版本有差别,会出现各种奇葩的错误.现在终于找到了解决方法:查看英文原版内容:http://djangobook.com/ ...

  4. OpenCV之Python学习笔记

    OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...

  5. Python学习笔记(十三)

    Python学习笔记(十三): 模块 包 if name == main 软件目录结构规范 作业-ATM+购物商城程序 1. 模块 1. 模块导入方法 import 语句 import module1 ...

  6. Python学习笔记(十一)

    Python学习笔记(十一): 生成器,迭代器回顾 模块 作业-计算器 1. 生成器,迭代器回顾 1. 列表生成式:[x for x in range(10)] 2. 生成器 (generator o ...

  7. Python学习笔记(九)

    Python学习笔记(九): 装饰器(函数) 内置函数 1. 装饰器 1. 作用域 2. 高阶函数 3. 闭包 如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就 ...

  8. Python学习笔记(七)

    Python学习笔记(七): 深浅拷贝 Set-集合 函数 1. 深浅拷贝 1. 浅拷贝-多层嵌套只拷贝第一层 a = [[1,2],3,4] b = a.copy() print(b) # 结果:[ ...

  9. Deep learning with Python 学习笔记(10)

    生成式深度学习 机器学习模型能够对图像.音乐和故事的统计潜在空间(latent space)进行学习,然后从这个空间中采样(sample),创造出与模型在训练数据中所见到的艺术作品具有相似特征的新作品 ...

  10. python学习笔记目录

    人生苦短,我学python学习笔记目录: week1 python入门week2 python基础week3 python进阶week4 python模块week5 python高阶week6 数据结 ...

随机推荐

  1. CodeForces Roads not only in Berland(并查集)

    H - Roads not only in Berland Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d ...

  2. opencv学习笔记——颜色空间转换函数cv::cvtColor详解

    cv::cvtColor()用于将图像从一个颜色空间转换到另一个颜色空间的转换(目前常见的颜色空间均支持),并且在转换的过程中能够保证数据的类型不变,即转换后的图像的数据类型和位深与源图像一致. 具体 ...

  3. 【css a标签 鼠标悬浮时变手型】

    <a href="#" style="cursor:pointer">

  4. Python-Select/Poll/Epoll使用

    select select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组,当select()返回后,该数组中就绪的文件描述符便会被内核修改标志位,使 ...

  5. Openstack(十三)部署管理服务horizon

    13.1horizon介绍 horizon是openstack的管理其他组件的图形显示和操作界面,通过API和其他服务进行通讯,如镜像服务.计算服务和网络服务等结合使用,horizon基于python ...

  6. 2006 - MySQL server has gone away

    mysql出现ERROR : (2006, 'MySQL server has gone away') 的问题意思就是指client和MySQL server之间的链接断开了. 造成这样的原因一般是s ...

  7. sysbench压测mysql基本步骤

    MySQL数据库测试 select   1.先创建数据库test,再准备数据 time /usr/local/sysbench/bin/sysbench --test=oltp --num-threa ...

  8. 牛客国庆集训派对Day2 Solution

    A    矩阵乘法 思路: 1° 牛客机器太快了,暴力能过. #include <bits/stdc++.h> using namespace std; #define N 5000 in ...

  9. Redis快速入门之简介

    一.Redis是什么? Redis 是一个开源(BSD许可)基于内存数据结构存储系统,它可以用作数据库.缓存和消息中间件. 它支持多种类型的数据结构,如字符串(strings), 散列(hashes) ...

  10. flask使用ajax提交表单

    Flask中使用ajax提交表单刷新数据,避免提交表单后使用return render_temp()会刷新页面 <form id ="test_form"> {{ fo ...