每天上班第一件事就是打开浏览器,手动点开十几个页面,检查接口通不通、响应快不快?我之前就是这样,像个机器人一样重复操作,直到有一次同事让我试试用Python写个自动化脚本。
为什么选Python做网络测试自动化
Python语法简单,库又多。比如requests发请求,就像泡面冲水一样简单;配合unittest或pytest,能快速搭建一套可重复运行的测试流程。关键是,写完一次脚本,以后每天点一下就能跑完所有检查,省下的时间喝杯咖啡不香吗?
一个真实的例子:监控公司官网接口
我们官网有6个核心接口,以前靠人工挨个测,容易漏。后来我写了段Python脚本,定时去请求这些接口,检查返回状态码和关键字段。只要哪个挂了,立刻发邮件提醒。有次半夜接口出问题,运维刚躺下就被叫起来处理,第二天老板还夸响应快——其实功劳是脚本的。
基础代码长这样
import requests
import time
urls = [
"https://api.example.com/user",
"https://api.example.com/order",
"https://api.example.com/product"
]
for url in urls:
try:
start_time = time.time()
resp = requests.get(url, timeout=5)
duration = time.time() - start_time
if resp.status_code == 200 and 'data' in resp.json():
print(f"[{url}] OK, 耗时{duration:.2f}s")
else:
print(f"[{url}] 异常,状态码:{resp.status_code}")
except Exception as e:
print(f"[{url}] 请求失败: {e}")
进阶一点:加上定时和通知
用APScheduler可以让脚本每小时自动跑一次。再装个smtplib,出问题直接发邮件到手机。现在我不用守着电脑,手机叮一声就知道哪块儿不对劲。
推荐几个提效工具
requests不用说了,发HTTP请求最顺手。想模拟浏览器行为,可以用Selenium,虽然慢点但能点按钮、填表单。要是数据格式复杂,Pydantic能帮你校验JSON结构。这些库pip install一下就搞定,文档也清楚,照着抄一遍就能跑。
前两天新来的小张还在手动测接口,我看不过去,把脚本丢给他。他改了两行适配自己的项目,当天就省了两个小时。有时候技术带来的改变,就这么实在。