1. Python 基础语法面试怎么准备
测试工程师准备 Python 基础语法,不能只按开发岗位的方式去背语法点。测试岗位更关注你能不能用 Python 写测试脚本、处理测试数据、调用接口、读取文件、封装公共方法、定位异常和搭建自动化框架。也就是说,Python 基础不是为了展示语法多熟,而是为了证明你能把它用到测试工作里。
面试中问 Python 基础语法,常见考点包括变量、数据类型、条件判断、循环、函数、列表、字典、元组、集合、字符串、文件读写、异常处理、模块导入等。回答时不要一个个干背,最好结合接口自动化、数据驱动、日志处理、测试数据构造这些场景来讲。这样面试官会觉得你不是“学过 Python”,而是真的“用 Python 做过测试”。
一、测试工程师为什么要学 Python
Python 在测试岗位中应用非常广,常见场景包括:
- 编写接口自动化脚本;
- 用
requests调用接口; - 用
pytest组织测试用例; - 读取 Excel、CSV、YAML、JSON 测试数据;
- 处理接口响应和断言;
- 生成测试报告;
- 批量构造测试数据;
- 分析日志和统计结果;
- 封装自动化测试框架;
- 编写小工具提升测试效率。
所以 Python 基础语法要围绕这些目标学习。
二、变量和数据类型怎么准备
Python 常见数据类型包括:
- int:整数;
- float:小数;
- str:字符串;
- bool:布尔值;
- list:列表;
- tuple:元组;
- dict:字典;
- set:集合;
- None:空值。
测试脚本中最常用的是字符串、列表和字典。
例如接口响应通常是 JSON,转换到 Python 后就是字典和列表:
response = {
"code": 0,
"message": "success",
"data": {
"order_id": "NO10001",
"status": "paid"
}
}
assert response["code"] == 0
assert response["data"]["status"] == "paid"
面试时可以说:我理解数据类型不是为了背概念,而是为了处理接口请求参数、响应 JSON 和测试数据。
三、条件判断怎么用
条件判断用于根据不同结果执行不同逻辑。
if status_code == 200:
print("接口请求成功")
else:
print("接口请求失败")
测试场景包括:
- 判断接口状态码;
- 判断业务 code;
- 根据环境选择不同域名;
- 根据用例结果统计成功失败;
- 根据字段是否存在做断言。
例如:
if result["code"] == 0:
assert result["data"] is not None
else:
assert result["message"] != ""
四、循环怎么用
循环常用于批量执行测试数据。
cases = [
{"username": "user1", "password": "123456"},
{"username": "user2", "password": "123456"},
]
for case in cases:
print(case["username"])
测试场景:
- 遍历测试用例;
- 批量调用接口;
- 批量生成账号;
- 遍历接口返回列表;
- 统计失败用例。
循环和列表、字典结合,是数据驱动测试的基础。
五、函数怎么准备
函数用于封装重复逻辑。自动化测试中,函数非常重要。
例如封装登录:
def login(username, password):
payload = {"username": username, "password": password}
return payload
真实项目中会封装:
- 登录方法;
- 请求方法;
- 数据库查询方法;
- 读取文件方法;
- 断言方法;
- 生成测试数据方法。
函数的价值是减少重复代码,提高维护性。
面试可以这样说:
我在自动化脚本中会把登录、请求封装、数据读取、断言这些重复逻辑封装成函数,避免每个用例重复写。
六、列表和字典为什么重要
列表适合保存一组数据,字典适合保存键值对。接口测试中,它们非常常用。
请求参数通常是字典:
payload = {
"product_id": 1001,
"count": 2
}
多条测试数据通常是列表:
cases = [
{"title": "正常下单", "count": 1, "expected": 0},
{"title": "库存不足", "count": 9999, "expected": 4001},
]
接口响应中的列表也很常见:
orders = response["data"]["list"]
assert len(orders) > 0
七、字符串常用操作
测试中字符串常用于处理 URL、Token、日志、接口字段。
常用操作包括:
- 拼接;
- 切片;
- 查找;
- 替换;
- 分割;
- 去空格;
- 格式化。
例如:
base_url = "https://api.example.com"
path = "/api/orders"
url = f"{base_url}{path}"
处理日志:
line = "ERROR order_id=NO10001 payment failed"
assert "ERROR" in line
八、文件读写怎么用
自动化测试经常要读取测试数据和写入结果。
例如读取 JSON 文件:
import json
with open("case.json", "r", encoding="utf-8") as f:
data = json.load(f)
写入日志或结果:
with open("result.txt", "w", encoding="utf-8") as f:
f.write("测试完成")
with open 可以自动关闭文件,是推荐写法。
九、异常处理怎么用
异常处理用于避免脚本因为一个错误直接中断,同时记录错误信息。
try:
result = 10 / 0
except ZeroDivisionError as e:
print(f"计算异常: {e}")
测试场景:
- 接口请求超时;
- 文件不存在;
- JSON 解析失败;
- 数据库连接失败;
- 字段不存在;
- 用例执行失败后记录日志。
异常处理不是为了吞掉错误,而是为了让错误可定位。
十、模块和包怎么理解
Python 中可以把代码拆成不同模块。自动化框架中常见结构:
common/ 公共方法
config/ 配置文件
data/ 测试数据
testcases/ 测试用例
utils/ 工具方法
例如:
from common.request_util import send_request
面试时可以说:自动化框架会把请求封装、配置读取、日志、断言、数据处理分模块管理。
十一、测试岗位 Python 面试常见问题
常见问题包括:
- Python 有哪些数据类型;
- 列表和元组区别;
- 字典怎么取值;
- 函数参数怎么理解;
- 如何处理异常;
- 如何读写文件;
- 怎么读取 JSON;
- 怎么用 Python 调接口;
- pytest 怎么组织用例;
- fixture 怎么用。
准备时要尽量带测试场景回答。
十二、面试回答模板
如果面试官问“Python 基础语法怎么掌握”,可以这样回答:
我学习 Python 主要是从测试脚本和自动化框架角度掌握。基础语法包括变量、字符串、列表、字典、元组、集合、条件判断、循环、函数、文件读写、异常处理和模块导入。实际项目中,接口请求参数和响应 JSON 通常会用字典和列表处理;批量测试数据会用循环执行;登录、请求封装、断言和数据读取会封装成函数;文件读写用于读取 JSON、YAML、CSV 或写测试结果;异常处理用于捕获接口超时、文件不存在、字段缺失等问题,方便定位脚本失败原因。
十三、常见追问
追问:测试中最常用哪些数据类型?
字符串、列表、字典最常用。字符串处理 URL 和字段,列表保存多条测试数据,字典处理请求参数和响应 JSON。
追问:为什么要封装函数?
减少重复代码,提高维护性。例如登录、请求、断言、读取文件都适合封装。
追问:异常处理是不是把错误忽略?
不是。异常处理是为了捕获错误、记录原因、让脚本更容易定位问题,而不是隐藏缺陷。
十四、练习清单
- 熟悉字符串、列表、字典;
- 用循环遍历测试数据;
- 封装一个登录函数;
- 读取一个 JSON 文件;
- 写入测试结果文件;
- 捕获一次接口请求异常;
- 解析接口响应 JSON;
- 断言业务 code;
- 拆分公共模块;
- 准备 Python 基础面试回答。
Python 基础语法的学习目标,不是把每个语法点背下来,而是能把它们组合成测试脚本,解决接口自动化、数据处理和框架封装中的实际问题。
配套刷题:

