当前位置: 首页 > 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.jsqmd.com/news/840060/

相关文章:

  • 在VMware虚拟机Ubuntu 20.04上,5分钟搞定PyBullet安装与第一个仿真程序
  • 钻井“自动化”的终点就是钻井自主化的起点
  • 鲁L蒲公英5.15股市日记:既然有风险,为何还强做?
  • 终极指南:5步解锁完整Koikatu游戏体验的HF Patch安装方案
  • 新闻从业者必读的NotebookLM避坑手册(含3类高发误用场景与合规红线)
  • XFCE桌面效率提升:自动光标跟随焦点窗口插件详解
  • 实测Taotoken多模型聚合调用的响应延迟与稳定性观感
  • Debian12 新手上路:从虚拟机搭建到系统调优全指南
  • 初次使用Taotoken控制台管理API密钥与查看账单的直观体验
  • 深度学习立体匹配:从MC-CNN架构解析到工程实践优化
  • Scalpel:精准代码修改利器,编译时源码替换实战指南
  • 5分钟快速上手:用particles.js为网站添加惊艳粒子特效
  • NotebookLM赋能康复医学研究:3天构建个性化循证分析工作流的实操指南
  • Consul-K8s实战:Kubernetes与Consul服务网格的无缝集成指南
  • 使用pip安装openai库并配置Taotoken实现Python快速接入大模型
  • 用C++手搓一个能下赢你的五子棋AI:从零实现博弈树与α-β剪枝
  • Linux驱动调试利器:debugfs接口设计与实现详解
  • LabVIEW PC端软件开发:架构设计、性能优化与工程化实践
  • Flutter聊天界面开发实战:flutter_chat_ui核心架构与高级定制指南
  • NVM for Windows终极指南:如何轻松管理多个Node.js版本 [特殊字符]
  • 嵌入式Linux QSPI驱动移植:从硬件配置到内核集成的完整实践
  • 谷歌seo搜索引擎优化外包给谁比较好?德法西等6种小语种外包推荐
  • 报告笔记--AI工程的文化研读记录及感悟
  • PPTist:在浏览器中重塑专业演示文稿的创作体验
  • 5步搞定微信读书笔记管理:新手也能快速上手的完整方案
  • XUnity Auto Translator:3分钟为Unity游戏添加多语言支持的终极解决方案
  • 终极AMD Ryzen硬件调试指南:免费开源SMUDebugTool完整使用教程
  • Claude技能库开发指南:工具调用原理与模块化实践
  • WindowsCleaner终极指南:3分钟解决C盘爆红,让你的电脑重获新生!
  • STM32WLE5CCU6移植官方PingPong例程,从CubeMX导入到E77模块调通的完整流程