【测试基础】Python 核心语法,一篇搞定测试脚本开发基础
(2025-2026 自动化测试实用精简版)
这篇文章的目标非常明确:
让零基础/半基础的测试同学,用最短时间掌握写自动化测试脚本真正需要的Python核心语法,而不是学成“Python程序员”。
我们只讲测试脚本开发中最常用、最常出错的 80% 内容,刻意忽略很多“锦上添花”的高级特性。
一、测试脚本最常使用的 12 大核心知识点(优先级顺序)
| 优先级 | 内容 | 重要程度(测试角度) | 必须掌握到什么程度 |
|---|---|---|---|
| 1 | 变量、数据类型、类型转换 | ★★★★★ | 熟练 |
| 2 | 字符串操作(最最最重要!) | ★★★★★ | 非常熟练 |
| 3 | 列表、字典、元组、集合基本操作 | ★★★★☆ | 熟练 |
| 4 | if 判断 + 比较运算符 + 逻辑运算符 | ★★★★ | 熟练 |
| 5 | for 循环 + while 循环 + range() | ★★★★ | 熟练 |
| 6 | 函数定义与调用、参数、返回值 | ★★★★ | 熟练 |
| 7 | 异常处理(try-except) | ★★★★ | 必须会 |
| 8 | 列表/字典推导式 | ★★★ | 会用常见模式 |
| 9 | 模块导入与常用内置模块 | ★★★ | 熟悉 |
| 10 | 类与对象基础(PageObject会用到) | ★★☆ | 理解基本概念即可 |
| 11 | 文件读写(txt、csv、json) | ★★★ | 必须会 |
| 12 | 常见内置函数(len、str、int、type等) | ★★★ | 熟练 |
二、最常用语法速查 + 测试场景示例
1. 变量与常见类型
# 基本类型(测试中最常用)
name = "登录成功" # 字符串 str
count = 5 # 整数 int
price = 99.99 # 浮点数 float
is_success = True # 布尔 bool
none_value = None # 空值
# 类型转换(超级常用!)
str(123) # "123"
int("45") # 45
float("3.14") # 3.14
bool(0) # False bool("") → False bool(" ") → True
2. 字符串操作(测试开发使用频率 Top1)
s = "Welcome to Python Testing!"
# 常用操作
len(s) # 长度
s.lower() # 转小写
s.upper() # 转大写
s.strip() # 去前后空白
s.replace("Python", "Automation") # 替换
"test" in s # 判断包含 → True/False
s.startswith("Wel") # 判断开头
s.endswith("ing!") # 判断结尾
# 格式化(推荐 f-string)
username = "admin"
print(f"登录用户:{username}") # 最常用
print("登录用户:{}".format(username)) # 老项目可能看到
# 分割 & 拼接
"2025-01-12".split("-") # ['2025', '01', '12']
"-".join(["2025", "01", "12"]) # '2025-01-12'
3. 列表 & 字典(测试数据准备最常用)
# 列表(有序、可重复)
cases = ["登录成功", "密码错误", "账号不存在"]
cases.append("验证码错误")
cases.insert(0, "首字母大写")
cases.pop() # 删除最后一个
cases.remove("密码错误")
cases[1] = "新用例" # 修改
# 遍历(最常用写法)
for case in cases:
print(case)
# 带索引遍历(非常常用)
for i, case in enumerate(cases):
print(f"第{i+1}条用例:{case}")
# 列表推导式(简洁创建测试数据)
numbers = [x*2 for x in range(1,6)] # [2,4,6,8,10]
even = [x for x in range(10) if x % 2 == 0] # [0,2,4,6,8]
# 字典(接口参数、预期结果最常用)
expected = {
"code": 200,
"msg": "success",
"data": {"token": "abc123"}
}
print(expected["code"]) # 取值
expected["time"] = "10ms" # 新增/修改
expected.get("error", "默认值") # 安全取值
4. 判断与循环(断言核心)
# 判断
response_code = 200
if response_code == 200:
print("成功")
elif response_code == 401:
print("未授权")
else:
print("其他错误")
# 常用组合判断
if status == "success" and code == 200:
pass
# 成员判断(超级常用)
if "token" in response_json:
print("包含token字段")
# 循环 + break/continue
for i in range(10):
if i == 5:
continue # 跳过本次
if i == 8:
break # 结束整个循环
print(i)
5. 函数封装(测试用例复用的核心)
def login(username, password):
"""模拟登录,返回是否成功"""
if username == "admin" and password == "123456":
return {"code": 200, "token": "xyz789"}
else:
return {"code": 401, "msg": "用户名或密码错误"}
# 调用
result = login("admin", "123456")
assert result["code"] == 200, "登录失败!"
6. 异常处理(测试脚本稳定性关键)
try:
num = int(input("请输入数字:"))
print(100 / num)
except ValueError:
print("请输入正确的数字!")
except ZeroDivisionError:
print("不能除以0!")
except Exception as e: # 万能捕获
print(f"未知错误:{e}")
else:
print("一切正常")
finally:
print("无论如何都会执行的清理代码")
7. 文件操作(读写测试数据/日志)
# 写文件
with open("test_data.txt", "w", encoding="utf-8") as f:
f.write("用例1,登录成功\n")
f.write("用例2,密码错误\n")
# 读文件
with open("test_data.txt", "r", encoding="utf-8") as f:
lines = f.readlines() # 列表,每行一个元素
for line in lines:
print(line.strip())
三、测试脚本最常用语法组合模板(直接抄改)
# 经典接口测试用例模板
def test_login_success():
"""验证正常登录"""
try:
response = login("admin", "123456") # 你的接口调用
assert response["code"] == 200
assert "token" in response
assert len(response["token"]) > 10
print("✅ 登录成功用例通过")
except AssertionError as e:
print(f"❌ 断言失败: {e}")
except Exception as e:
print(f"❌ 接口异常: {e}")
# 批量执行
test_cases = [
{"username": "admin", "password": "123456", "expect": 200},
{"username": "wrong", "password": "123", "expect": 401},
]
for case in test_cases:
result = login(case["username"], case["password"])
assert result["code"] == case["expect"]
四、给测试新手的最终建议(2026版)
学习优先级建议顺序(大概时间):
- 字符串操作 + 列表/字典(1-2周)
- 判断 + 循环 + 函数(1-2周)
- 异常处理 + 文件读写(1周)
- 学会用断言assert(持续练习)
- 掌握基本的类(PageObject会用到)(2-4周后学)
记住一句话:
“测试开发需要的Python,其实只用到了整个语言的20%,但这20%几乎每天都在用。”
把上面列出的内容先吃透,基本就能开始写大多数接口自动化、UI自动化、数据驱动的测试脚本了。
有具体方向(接口/UI/性能/爬虫等)想要深入的,可以继续问我,我可以给你对应场景的语法重点精简版~ 😄