web 自动化之 yaml 数据/日志/截图

发布于:2025-05-14 ⋅ 阅读:(14) ⋅ 点赞:(0)

一、yaml 数据获取

需要安装 PyYAML 库

import yaml
import os
from TestPOM.common import dir_config as Dir

def read_yaml(key,file_name="test_datas.yaml"):
    file_path = os.path.join(Dir.testcases_dir, file_name)
    with open(file_path,encoding="utf-8") as yaml_file:
        datas = yaml.load(yaml_file, Loader=yaml.FullLoader) # 字典类型
        data = datas[key]
    return data
二、日志获取
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}")

网站公告

今日签到

点亮在社区的每一天
去签到