本文目录导读:

可以!实用脚本完全可以用于批量演练,而且这正是脚本自动化能力的核心价值所在。
所谓“批量演练”,通常指用相同的逻辑、不同的输入数据,反复执行某个操作(比如测试、数据生成、模拟请求、批量处理文件等)。
下面我为你梳理几种常见的批量演练场景,并给出相应的脚本思路(以 Python 和 Shell 为例):
最常见的几种批量演练场景
-
批量测试 API 接口
- 场景:验证 100 个不同的用户输入,检查接口返回是否正确。
- 思路:准备一个 CSV 或 JSON 文件作为输入,循环调用 API,比对返回结果。
-
批量生成测试数据
- 场景:往数据库里插入 1000 条模拟用户记录。
- 思路:写一个循环,利用随机库生成不同数据,然后执行 SQL INSERT。
-
批量执行系统命令
- 场景:在 50 台服务器上同时执行健康检查命令。
- 思路:用 SSH 批量连接工具(如
paramiko或ansible)循环下发命令。
-
批量文件处理
- 场景:把 500 张图片统一压缩、改格式或加水印。
- 思路:遍历文件夹中的文件,对每个文件调用处理函数。
实用脚本示例(可直接用于批量演练)
示例 1:批量 API 测试(Python + requests)
import requests
import csv
# 准备数据文件 input.csv,每行包含:url, method, payload
with open('input.csv', 'r') as f:
reader = csv.DictReader(f)
for row in reader:
url = row['url']
method = row['method'].lower()
payload = row.get('payload', '')
try:
if method == 'post':
resp = requests.post(url, json=eval(payload) if payload else {})
elif method == 'get':
resp = requests.get(url)
else:
print(f"未支持的 method: {method}")
continue
# 简单的断言:是否返回 200
assert resp.status_code == 200, f"失败: {url} | 状态码: {resp.status_code}"
print(f"✅ 通过: {url} -> {resp.status_code}")
except Exception as e:
print(f"❌ 失败: {url} -> {e}")
使用方式:
- 准备
input.csv,列如:url,method,payload - 运行脚本,自动循环测试所有用例。
示例 2:批量生成随机用户数据并写入数据库(Python + faker)
import pymysql
from faker import Faker
fake = Faker('zh_CN') # 生成中文数据
# 数据库连接(请替换为自己的配置)
conn = pymysql.connect(host='localhost', user='root', password='yourpassword', db='testdb')
cursor = conn.cursor()
# 批量生成 100 条用户记录
for _ in range(100):
name = fake.name()
phone = fake.phone_number()
email = fake.email()
address = fake.address()
sql = f"INSERT INTO users (name, phone, email, address) VALUES ('{name}', '{phone}', '{email}', '{address}')"
cursor.execute(sql)
conn.commit()
print("✅ 100 条模拟数据已插入数据库")
cursor.close()
conn.close()
示例 3:批量压缩图片(Python + Pillow)
import os
from PIL import Image
input_dir = "./original_images"
output_dir = "./compressed_images"
os.makedirs(output_dir, exist_ok=True)
# 遍历原始目录下的所有 jpg/png 文件
for filename in os.listdir(input_dir):
if filename.lower().endswith(('.png', '.jpg', '.jpeg')):
img_path = os.path.join(input_dir, filename)
img = Image.open(img_path)
# 压缩并保存(质量设为 50)
output_path = os.path.join(output_dir, filename)
img.save(output_path, optimize=True, quality=50)
print(f"✅ 已压缩: {filename}")
print("批量压缩完成!")
如何让批量演练更高效?
| 技巧 | 说明 |
|---|---|
| 使用参数化数据文件 | 把输入数据写在 Excel、CSV 或 JSON 里,脚本直接读取,方便修改。 |
| 加入进度显示 | 使用 tqdm 库显示进度条,尤其适合几千次的循环。 |
| 日志记录 | 把每个步骤的结果写入日志文件,方便事后分析失败原因。 |
| 并发加速 | 使用 threading 或 asyncio 实现并发请求,大幅缩短总体时间。 |
| 重试机制 | 对失败的请求自动重试 2~3 次,提高演练稳定性。 |
进阶:用脚本驱动“演练框架”
如果你需要更复杂的批量演练(先登录 -> 再下单 -> 检查订单状态),可以写一个统一的“演练引擎脚本”:
tasks = [
{"step": "登录", "action": login, "data": {}},
{"step": "创建订单", "action": create_order, "data": {"product_id": 101}},
{"step": "查询订单", "action": check_order, "data": {}},
]
for task in tasks:
print(f"正在执行: {task['step']}")
result = task['action'](**task['data'])
assert result['status'] == 'success', f"失败: {task['step']}"
print(f"✅ {task['step']} 通过")
调用方式:把不同的数据(100 组用户)作为外层循环,内层执行这些步骤,就实现了批量场景演练。
何时不适合用脚本批量演练?
- 需要人工交互(验证码、扫码等)
- 环境极度不稳定(每次运行都报错,但不是脚本问题)
- 操作风险极高(比如批量删除生产库数据,建议加人工确认)
答案是:完全可以,而且非常推荐。
实用脚本的核心优势就是“批量 + 自动化”,你只需要写好一次逻辑,用数据和循环来驱动它,就能执行成千上万次的演练。
如果你有具体的演练场景(批量压力测试、批量合规检查、批量数据清洗等),可以告诉我,我可以帮你写一个对应的模板脚本。