当前位置: 首页 > news >正文

接口自动化工具类模板 + 必备 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, encoding="utf-8") info_handler = logging.FileHandler(info_log_name, encoding="utf-8") err_handler = logging.FileHandler(err_log_name, encoding="utf-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.logger
  • Request 封装请求工具

  • 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(url=url, **kwargs) self.log.info("接口响应状态码:{}".format(r.status_code)) self.log.info("接口响应内容:{}".format(r.text)) return r
  • yaml 读写工具

  • ''' yaml相关的操作 ''' import os import yaml #往yaml文件中写入数据 def write_yaml(filename,data): with open(os.getcwd()+"/data/"+filename,mode="a+",encoding="utf-8") as f: yaml.safe_dump(data, stream=f) #读取yaml文件中的数据(若yaml文件中有重复的字段,读取的是最新的) def read_yaml(filename,key): with open(os.getcwd()+"/data/"+filename,mode="r",encoding="utf-8") as f: data = yaml.safe_load(f) return data[key] #清空 def clear_yaml(filename): with open(os.getcwd()+"/data/"+filename,mode="w",encoding="utf-8") as f: f.truncate()

    requirements.txt

  • 在项目根目录新建文件,名字必须叫:requirements.txt

  • 把你这些内容粘贴进去,PyCharm 会自动提示安装,就能一键下载这些所需要的依赖

  • pytest==8.3.2 allure-pytest==2.13.5 jsonschema==4.23.0 PyYAML==6.0.1 requests==2.31.0 pytest-order==1.3.0
http://www.zskr.cn/news/1311319.html

相关文章:

  • EnvScaler:AI/ML环境即代码,解决“在我机器上能跑”的部署难题
  • ARM+FPGA异构计算:软硬件协同定制与生态共建实践指南
  • Debian12 新手上路:从虚拟机搭建到系统调优全指南
  • GitHub加速终极指南:如何用开源插件将下载速度提升30倍
  • 使用pip安装openai库并配置Taotoken实现Python快速接入大模型
  • Cursor Free VIP终极指南:三步永久免费使用Cursor AI Pro功能
  • Linux驱动调试利器:debugfs接口设计与实现详解
  • Flutter聊天界面开发实战:flutter_chat_ui核心架构与高级定制指南
  • PPTist:在浏览器中重塑专业演示文稿的创作体验
  • 终极AMD Ryzen硬件调试指南:免费开源SMUDebugTool完整使用教程
  • Claude技能库开发指南:工具调用原理与模块化实践
  • XUnity Auto Translator:3分钟为Unity游戏添加多语言支持的终极解决方案
  • 初创公司如何利用Taotoken的Token Plan实现AI应用成本可控
  • 告别无声播放!UE5中为MediaPlayer视频添加声音的完整指南(含MediaSound组件详解)
  • WRF-CHEM模拟翻车?可能是你的namelist.chem没设对(附MEIC数据实战配置清单)
  • 手把手教你用STM32L431和SIMCOM7600CE实现4G远程OTA升级(含完整代码与避坑指南)
  • 抖音批量下载神器:三步搞定无水印视频下载,告别手动烦恼
  • ChatGPT支付功能现状深度研判(2024Q2最新政策+OpenAI开发者文档交叉验证)
  • 小学期第一周学习记录
  • 5分钟掌握全平台炫酷抽奖:Magpie-LuckyDraw开源项目深度解析
  • 兴化亲测!别墅品牌优胜揭秘并附带联系方式 - 花开富贵112
  • AutoRAN:零接触自动化Open RAN系统设计与实践
  • Arduino智能LED彩灯制作:从WS2812B控制到音乐同步效果实现
  • RocketMQ快速实战以及核⼼概念详解
  • TVA主动学习实现毫秒级样本筛选
  • 初创公司如何借助Taotoken的Token Plan套餐有效控制AI实验成本
  • 2026年4月靠谱的商用净水公司推荐,家用净水/全屋净水系统/商用净水,商用净水公司哪个好 - 品牌推荐师
  • 3步突破性方案:Windows系统原生级Android应用安装体验
  • TPS薄板样条插值:如何用NumPy手写一个比scipy更快的实现?
  • Claude Code Bridge:本地化AI编程助手集成方案详解