如何使用脚本或工具批量调用REST API验证多输入文件返回结果
批量调用文件上传API做校验的实现方案
完全可以实现,以下是三种常用的落地方式:
方案1:Python脚本(最灵活,推荐复杂校验场景)
适合需要自定义校验规则、导出详细校验报告的场景,核心逻辑是遍历目标文件夹下的所有文件,逐个发起请求后做结果校验。
示例代码如下:
import os import requests # 配置项,替换为你自己的实际参数 API_URL = "你的API接口地址" INPUT_FOLDER = "存放待校验文件的文件夹绝对路径" EXPECTED_SUCCESS_CODE = 200 # 替换为接口正常返回的HTTP状态码 FILE_PARAM_NAME = "file" # 替换为API接收文件的入参参数名 for filename in os.listdir(INPUT_FOLDER): file_path = os.path.join(INPUT_FOLDER, filename) # 跳过文件夹,只处理文件 if not os.path.isfile(file_path): continue # 构造文件上传请求 with open(file_path, 'rb') as f: files = {FILE_PARAM_NAME: (filename, f)} response = requests.post(API_URL, files=files) # 自定义校验逻辑,可扩展为响应内容和预期值的比对、JSON字段校验等 if response.status_code != EXPECTED_SUCCESS_CODE: print(f"[校验失败] 文件名:{filename},状态码:{response.status_code},响应内容:{response.text}") else: print(f"[校验通过] 文件名:{filename}")
方案2:Postman批量执行(无代码基础也可快速上手)
适合简单校验场景,全程可视化操作,自带结果统计:
- 先在Postman新建文件上传请求,填好API地址、请求方法,在Body的form-data栏将文件参数的类型改为
File,参数值填动态变量{{$filePath}} - 将该请求保存到任意集合(Collection)中
- 准备CSV参数文件,列标题设为
filePath,每一行填一个待校验文件的绝对路径 - 打开集合的「Runner」功能,导入刚才的CSV参数文件,勾选「Persist Variables」,选择对应请求后点击运行即可自动批量执行
- 可以提前在请求的「Tests」标签页写好校验规则,运行后会直接展示每个请求的校验结果
方案3:Shell脚本+curl(轻量无额外依赖)
适合Linux/macOS环境下不需要安装额外工具的场景,直接通过系统自带的curl完成批量调用:
#!/bin/bash # 配置项,替换为你自己的实际参数 API_URL="你的API接口地址" INPUT_FOLDER="存放待校验文件的文件夹绝对路径" FILE_PARAM_NAME="file" # 替换为API接收文件的入参参数名 for file in "$INPUT_FOLDER"/* do if [ -f "$file" ]; then echo "正在处理文件:$file" # 发起请求,同时获取状态码和响应内容 resp=$(curl -s -w "%{http_code}" -X POST -F "$FILE_PARAM_NAME=@$file" "$API_URL") status_code=${resp: -3} resp_body=${resp:0:-3} if [ "$status_code" -ne 200 ]; then echo "[校验失败] 文件名:$file,状态码:$status_code,响应内容:$resp_body" else echo "[校验通过] 文件名:$file" fi fi done
内容的提问来源于stack exchange,提问作者Ashok Bottu
相关产品推荐
相关产品推荐

