接口自动化工具类模板 + 必备 requirements 依赖清单
logger 日志工具import logging import os import time class infoFilter(logging.Filter):#继承自logging.Filter类 def filter(self, record): return record.levelno logging.INFO class errFilter(logging.Filter): def filter(self, record): return record.levelno logging.ERROR class logger: #获取日志对象--定义类方法classmethod classmethod def getlog(cls): #创建日志对象 cls.logger logging.getLogger(__name__) cls.logger.setLevel(logging.DEBUG) #将日志输出到日志文件中 # 保证logs文件夹创建好了 LOG_PATH ./logs/ if not os.path.exists(LOG_PATH): os.mkdir(LOG_PATH) ./logs/ 2026-4-27.log 2026-4-27-info.log 2026-4-27-err.log now LOG_PATH time.strftime(%Y-%m-%d) log_name now .log info_log_name now -info.log err_log_name now -err.log #创建文件处理器 all_handler logging.FileHandler(log_name, encodingutf-8) info_handler logging.FileHandler(info_log_name, encodingutf-8) err_handler logging.FileHandler(err_log_name, encodingutf-8) # #创建处理器将日志输出到控制台 # streamHandler logging.StreamHandler() #设置日志的格式 formatter logging.Formatter(%(asctime)s %(levelname)s [%(name)s] [%(filename)s (%(funcName)s:%(lineno)d] - %(message)s) all_handler.setFormatter(formatter) info_handler.setFormatter(formatter) err_handler.setFormatter(formatter) # streamHandler.setFormatter(formatter) #添加过滤器 info_handler.addFilter(infoFilter()) err_handler.addFilter(errFilter()) cls.logger.addHandler(all_handler) cls.logger.addHandler(info_handler) cls.logger.addHandler(err_handler) # cls.logger.addHandler((streamHandler)) return cls.loggerRequest 封装请求工具import requests from utils.logger_util import logger host http://xxx class Request: log logger.getlog() def get(self, url, **kwargs): self.log.info(准备发起get请求url : url) #接口信息打印到{}中的写法 self.log.info(接口信息{}.format(kwargs)) r requests.get(url url, **kwargs) self.log.info(接口响应状态码{}.format(r.status_code)) self.log.info(接口响应内容{}.format(r.text)) return r def post(self, url, **kwargs): self.log.info(准备发起post请求url : url) # 接口信息打印到{}中的写法 self.log.info(接口信息{}.format(kwargs)) r requests.post(urlurl, **kwargs) self.log.info(接口响应状态码{}.format(r.status_code)) self.log.info(接口响应内容{}.format(r.text)) return ryaml 读写工具 yaml相关的操作 import os import yaml #往yaml文件中写入数据 def write_yaml(filename,data): with open(os.getcwd()/data/filename,modea,encodingutf-8) as f: yaml.safe_dump(data, streamf) #读取yaml文件中的数据(若yaml文件中有重复的字段读取的是最新的) def read_yaml(filename,key): with open(os.getcwd()/data/filename,moder,encodingutf-8) as f: data yaml.safe_load(f) return data[key] #清空 def clear_yaml(filename): with open(os.getcwd()/data/filename,modew,encodingutf-8) as f: f.truncate()requirements.txt在项目根目录新建文件名字必须叫requirements.txt。把你这些内容粘贴进去,PyCharm 会自动提示安装,就能一键下载这些所需要的依赖pytest8.3.2 allure-pytest2.13.5 jsonschema4.23.0 PyYAML6.0.1 requests2.31.0 pytest-order1.3.0