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)