文章目录
- 一、yaml 数据获取
- 二、日志获取
- 三、截图
一、yaml 数据获取
需要安装 PyYAML 库
import yaml
import os
from TestPOM.common import dir_config as Dir
import jsonpath
class Data:
def __init__(self,key=None,file_name="test_datas.yaml"):
file_path = os.path.join(Dir.testdata_dir, file_name)
with open(file_path, encoding="utf-8") as yaml_file:
self.data = yaml.load(yaml_file, Loader=yaml.FullLoader) # 字典类型
if key is not None:
self.data = jsonpath.jsonpath(self.data, f"$..{key}")
if __name__ == "__main__":
print(*Data("fail").data[0])
二、日志获取
from TestPOM.common import dir_config as Dir
import logging
import os
import time
class FrameLogger:
def get_logger(self):
# 创建日志器
logger = logging.getLogger("logger")
# 日志输出当前级别及以上级别的信息,默认日志输出最低级别是warning
if not logger.handlers:
logger.setLevel(logging.INFO)
# 创建控制台处理器----》输出控制台
SH = logging.StreamHandler()
# 创建文件处理器----》输出文件
log_path = os.path.join(Dir.logs_dir, f"log_{time.strftime('%Y%m%d%H%M%S', time.localtime())}.txt")
FH = logging.FileHandler(log_path,encoding="utf-8")
# 日志包含哪些内容 时间 文件 日志级别 :事件描述/问题描述
formatter = logging.Formatter(fmt="[%(asctime)s] [%(filename)s] %(levelname)s :%(message)s",
datefmt='%Y/%m/%d %H:%M:%S')
logger.addHandler(SH)
logger.addHandler(FH)
SH.setFormatter(formatter)
FH.setFormatter(formatter)
return logger
三、截图
def save_screenshot(self,img_name):
file_name = os.path.join(Dir.screenshots_dir, img_name+'.png')
self.driver.save_screenshot(file_name)
Log().get_logger().info(f"失败截图,截取当前网页,存储的路径:{file_name}")