logging日志处理D18

logging日志:

## 接口测试框架搭建

1.unittest

2.excel

3.ddt

4.logging 日志管理

5.yaml 配置文件

## logging日志管理

-不用print显示程序执行的状况

-日志种类:

- 控制台信息

- 文件形式

## 日志的作用

- 出现问题以后 排查问题

- 定位问题

## logging 模块的作用

1.日志级别 debug info warning error critical

2.记录日志 logging.info(“日志信息”)

附带代码:

"""记录日志"""

import logging

# 第一步:创建一个日志收集器

logger = logging.getLogger("python29")

# 设置收集器的收集等级

logger.setLevel("DEBUG")



# 1)handler 输出处理器 流信息

stream_handler = logging.StreamHandler()

stream_handler.setLevel("DEBUG")

# 把输出处理器添加到收集器上面

logger.addHandler(stream_handler)



# 2)文件输出处理器

file_handler = logging.FileHandler("log.txt", encoding="utf8")

file_handler.setLevel("INFO")

logger.addHandler(file_handler)



# 设置日志格式

fmt = logging.Formatter('%(asctime)s--%(filename)s--line:%(lineno)d--%(levelname)s:%(message)s')

file_handler.setFormatter(fmt)

stream_handler.setFormatter(fmt)



logger.debug("debug等级日志")

logger.info("info等级日志")

logger.warning("warning等级日志")

logger.error("error等级日志")

logger.critical("critical等级日志")

作业:

logging 模块封装
对 logging 日志处理进行封装。使用 2 种方法:
方法一: 函数封装 def get_logger()
方法二: 类封装 class LoggerHander(logging.Logger)

提示:得到收集器 logger 可以用 super()__init__ 哦!

上期答案:

"""
ddt数据驱动
1, 封装 excel 操作的类(自己实现!!)
2, 基于ddt, 实现 login 函数的单元测试。
"""

import openpyxl
import unittest
import os

from lenmon.libs.HTMLTestRunnerNew import HTMLTestRunner


class ExcelHandler:

    def __init__(self, file_path):
        """初始化"""
        self.file_path = file_path
        self.workbook = None

    def open_file(self):
        """打开文件"""
        workbook = openpyxl.load_workbook(self.file_path)
        print("打开文件{}".format(self.file_path))
        self.workbook = workbook
        return workbook

    def get_sheet(self, name):
        """获取表格"""
        workbook = self.open_file()
        sheet = workbook[name]
        print("获取表格:{}".format(name))
        return sheet

    def read_data(self, name):
        """读取数据"""
        sheet = self.get_sheet(name)
        rows = list(sheet.rows)

        data = []

        headers = []
        for title in rows[0]:
            headers.append(title.value)

        for row in rows[1:]:
            row_data = {}
            for index, cell in enumerate(row):
                row_data[headers[index]] = cell.value
            data.append(row_data)
        return data

    def save(self):
        """保存文件"""
        self.workbook.save(self.file_path)

    def close(self):
        """关闭文件"""
        self.workbook.close(self.file_path)


# 初始化一个加载器
loader = unittest.TestLoader()

dir_path = os.path.dirname(os.path.abspath(__file__))
# 使用loader收集所有的测试用例
test_suite = loader.discover(dir_path)

# 执行测试用例,生成测试报告
with open("reports.html", "wb") as f:
    runner = HTMLTestRunner(
        f,
        title="python第一次测试报告",
        description="登录模块的测试报告",
        tester="wuyi"
    )
    runner.run(test_suite)

  • 18
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值