Python自动化测试实战:这10个经典案例让你快速上手(附完整代码)
📖 目录导读
- 为什么Python是自动化测试的首选语言?
- 适合初学者的5个基础案例
- 进阶必练的3个Web自动化案例
- 提升效率的2个API与数据驱动案例
- 常见问题解答(FAQ)
- 总结与学习路线图
为什么Python是自动化测试的首选语言?
根据Stack Overflow 2024年开发者调查,Python连续五年蝉联最受测试工程师欢迎的脚本语言,其优势包括:

- 语法简洁:代码量比Java减少40%-60%
- 生态强大:Selenium、Pytest、Requests等库成熟稳定
- 跨平台:Windows/Linux/macOS一键运行
💬 问答环节
Q:Python自动化测试适合哪些场景?
A: 主要适合回归测试、冒烟测试、数据校验、接口监控等重复性工作,例如电商网站每天1000+商品更新,用Python脚本可自动验证价格、库存等字段。
适合初学者的5个基础案例
1 文件批量重命名(文件操作自动化)
场景:下载的图片文件名含乱码,需统一格式
代码示例:
import os
path = "./images"
for filename in os.listdir(path):
if filename.endswith(".jpg"):
new_name = f"photo_{index}.jpg"
os.rename(os.path.join(path, filename), os.path.join(path, new_name))
2 自动发送邮件报告(Email自动化)
代码片段:
import smtplib
from email.mime.text import MIMEText
msg = MIMEText("测试报告:所有用例通过!")
msg['Subject'] = "自动化测试日报"
smtp.sendmail(sender, receivers, msg.as_string())
3 检查网站状态(基础监控)
import requests
url = "https://example.com"
try:
r = requests.get(url, timeout=5)
assert r.status_code == 200
print("网站正常")
except:
print("网站异常")
4 解析CSV测试数据
import csv
with open("testdata.csv", "r") as f:
reader = csv.DictReader(f)
for row in reader:
print(row["username"], row["password"])
5 模拟键盘输入(自动化填写)
import pyautogui
pyautogui.write("Hello World", interval=0.1)
pyautogui.press("enter")
💬 问答环节
Q:这些基础案例能直接用在公司项目吗?
A: 建议先练手,实际项目需结合异常处理和日志记录,例如邮件发送案例要使用SMTP授权码,而非直接明文密码。
进阶必练的3个Web自动化案例
1 登录功能测试(Selenium实战)
核心代码:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://example.com/login")
driver.find_element(By.ID, "username").send_keys("admin")
driver.find_element(By.ID, "password").send_keys("123456")
driver.find_element(By.CLASS_NAME, "login-btn").click()
assert "欢迎" in driver.page_source
2 自动抓取商品价格(爬虫+断言)
from selenium.webdriver.common.by import By
prices = driver.find_elements(By.CSS_SELECTOR, ".price")
for price in prices:
assert float(price.text.replace("$", "")) > 0
3 跨页面数据验证(流程测试)
典型场景:注册→登录→下单→支付→订单查询
💬 问答环节
Q:Web自动化测试最怕什么?
A: 元素定位不稳定,建议优先使用ID定位,次选XPath相对路径(避免使用绝对路径),遇到弹窗或动态加载需加入显式等待WebDriverWait。
提升效率的2个API与数据驱动案例
1 REST API自动化测试(Requests+Pytest)
import pytest
import requests
def test_create_user():
payload = {"name": "test", "email": "test@example.com"}
r = requests.post("https://api.example.com/users", json=payload)
assert r.status_code == 201
assert r.json()["id"] > 0
2 数据驱动测试(Pytest参数化)
@pytest.mark.parametrize("username,password,expected", [
("admin", "admin123", True),
("user", "wrong", False),
("", "empty", False)
])
def test_login(username, password, expected):
result = login_func(username, password)
assert result == expected
💬 问答环节
Q:数据驱动测试有什么好处?
A: 避免重复代码,例如测试50组登录数据,只需1个测试函数和1个CSV文件,结合pytest-xdist还能并行执行,速度提升3-5倍。
常见问题解答(FAQ)
Q1:没有编程基础能学Python自动化吗?
A:完全可以,建议先花2周掌握基础语法(变量、循环、函数),再结合案例边练边学。
Q2:这些案例需要安装哪些库?
A:核心库清单:
pip install selenium pytest requests pyautogui
Web测试还需下载ChromeDriver并配置环境变量。
Q3:如何让测试更稳定?
- 加入等待机制(time.sleep或WebDriverWait)
- 使用try/except捕获异常
- 测试数据与代码分离(JSON/CSV文件)
Q4:企业级项目该选哪个框架?
A:推荐组合:Pytest + Selenium + Allure,架构清晰,支持报告生成、失败重试、分布式执行。
总结与学习路线图
核心观点:
- 自动化测试能提升回归效率70%以上
- 案例选择应遵循“先基础后专项”原则
- 实际项目中70%的用例属于接口测试,30%属于UI测试
建议学习路径:
- 第1周:Python基础 + 文件/邮件操作
- 第2周:Selenium定位 + 单个页面测试
- 第3周:Pytest框架 + 数据驱动
- 第4周:接口测试 + CI/CD集成(Jenkins)
💡 最后提醒:自动化不是银弹,从最简单的案例做起,每完成一个就给自己一次正向反馈,当你能用Python自动处理日常工作中的重复任务时,就已经掌握了自动化测试的精髓。
(本文案例均可在主流技术博客平台验证,推荐结合视频教程同步练习)