小牛丨软件测试学习小牛丨软件测试学习
首页
  • 业务测试面试题
  • 数据库测试面试题
  • Linux测试环境面试题
  • 网络协议测试面试题
  • 中间件测试面试题
  • Java测试开发面试题
  • Python测试开发面试题
  • Python自动化面试题
  • Java自动化面试题
  • 性能测试面试题
  • 手撕代码
  • HR面试题
  • 系列总入口
  • 业务测试理论
  • 数据库测试
  • Linux测试环境
  • 网络协议
  • 中间件测试
  • Python编程
  • Java编程
  • 自动化测试
  • 性能测试
  • AI测试
  • HR面试
  • AI测试学习路线
  • AI测试基础面试题
  • 大模型测试面试题
  • AI自动化测开面试题
  • AI Agent测试面试题
  • AI性能与稳定性测试面试题
  • AI应用安全测试面试题
  • 互联网大厂面试真题
  • 互联网中厂面试真题
  • 手机厂商面试真题
  • 通信厂商面试真题
  • 新能源汽车面试真题
  • 银行金融面试真题
  • 项目说明
  • 电商接口文档
  • 实战项目总入口
  • 测试简历编写指南
  • 20K level 简历打磨指南
  • 测试简历模板参考
  • 简历常见问题与避坑
  • 零基础入行专题路径
  • 初中级进阶高级专题路径
  • 零基础小白入行软件测试保姆级学习路线
  • 初中级测试进阶高级测试全路线
首页
  • 业务测试面试题
  • 数据库测试面试题
  • Linux测试环境面试题
  • 网络协议测试面试题
  • 中间件测试面试题
  • Java测试开发面试题
  • Python测试开发面试题
  • Python自动化面试题
  • Java自动化面试题
  • 性能测试面试题
  • 手撕代码
  • HR面试题
  • 系列总入口
  • 业务测试理论
  • 数据库测试
  • Linux测试环境
  • 网络协议
  • 中间件测试
  • Python编程
  • Java编程
  • 自动化测试
  • 性能测试
  • AI测试
  • HR面试
  • AI测试学习路线
  • AI测试基础面试题
  • 大模型测试面试题
  • AI自动化测开面试题
  • AI Agent测试面试题
  • AI性能与稳定性测试面试题
  • AI应用安全测试面试题
  • 互联网大厂面试真题
  • 互联网中厂面试真题
  • 手机厂商面试真题
  • 通信厂商面试真题
  • 新能源汽车面试真题
  • 银行金融面试真题
  • 项目说明
  • 电商接口文档
  • 实战项目总入口
  • 测试简历编写指南
  • 20K level 简历打磨指南
  • 测试简历模板参考
  • 简历常见问题与避坑
  • 零基础入行专题路径
  • 初中级进阶高级专题路径
  • 零基础小白入行软件测试保姆级学习路线
  • 初中级测试进阶高级测试全路线
  • Python 编程精华文章

    • Python 编程精华文章
    • 1. Python 基础语法面试怎么准备
    • 2. 列表元组字典集合怎么区分
    • 3. Python 字符串常用操作怎么用
    • 4. 函数参数和返回值怎么理解
    • 5. 异常处理在测试脚本中怎么用
    • 6. 文件读写和数据驱动测试
    • 7. Pytest 基础用法怎么讲
    • 8. Pytest fixture 怎么理解
    • 9. Python 接口测试脚本怎么写
    • 10. Python 自动化框架能力怎么提升
⌕
🛒项目实战📦资料包🛠测试神器AIAI路线CV简历测评🧭入行测评🧪测开测评🎯训练营🏆案例❤赞赏我

4. 函数参数和返回值怎么理解

函数是 Python 自动化测试脚本中最重要的基础能力之一。很多测试同学会写几行脚本,但代码大量重复:每个用例都写登录、请求、断言、读取数据。这样的脚本能跑,但不好维护。函数的价值就是把重复逻辑封装起来,让脚本更清晰、更稳定、更容易复用。

面试中问函数参数和返回值,测试岗位不要只背“参数是传入函数的数据,返回值是函数执行后的结果”。更好的回答是:我会用函数封装登录、发送请求、读取测试数据、数据库查询、断言和日志记录;参数用于传入不同测试数据,返回值用于给后续步骤继续使用,比如返回 Token、响应对象、数据库查询结果。

一、函数为什么重要

自动化测试中常见重复逻辑包括:

  • 登录获取 Token;
  • 发送 HTTP 请求;
  • 拼接 URL;
  • 读取 YAML/JSON/Excel 数据;
  • 连接数据库;
  • 断言响应;
  • 写日志;
  • 生成测试数据。

这些逻辑如果不封装,每个用例都写一遍,后期接口变更会非常难维护。

二、函数基本写法

def add(a, b):
    return a + b

a 和 b 是参数,return 后面是返回值。

测试脚本中的例子:

def build_url(base_url, path):
    return f"{base_url}{path}"

使用:

url = build_url("https://api.example.com", "/api/login")

三、参数怎么理解

参数是函数执行需要的输入。

例如登录函数:

def login(username, password):
    payload = {"username": username, "password": password}
    return payload

不同用户名密码可以复用同一个函数。

测试中常见参数:

  • 请求方法;
  • URL;
  • Header;
  • 请求参数;
  • 预期结果;
  • 用户名密码;
  • 数据库 SQL;
  • 文件路径。

四、默认参数

默认参数可以给参数设置默认值。

def send_request(method="GET", url="", headers=None, json=None):
    pass

测试封装中常用于默认请求方法、默认超时时间、默认环境。

注意:可变类型不要直接作为默认参数,比如不要写 headers={},更推荐 headers=None 后在函数内处理。

五、关键字参数

调用函数时可以指定参数名,提升可读性。

send_request(method="POST", url="/api/login", json={"username": "tester"})

测试脚本里建议多用关键字参数,避免参数顺序写错。

六、返回值怎么理解

返回值是函数执行后的结果,供后续使用。

例如登录函数返回 Token:

def login():
    token = "mock_token"
    return token

token = login()

接口请求函数返回响应:

def send_request(url, payload):
    response = {"code": 0, "data": {}}
    return response

返回值可以是字符串、数字、字典、列表、对象,也可以返回多个值。

七、多个返回值

def get_user_info():
    user_id = 1001
    token = "abc"
    return user_id, token

user_id, token = get_user_info()

Python 多个返回值本质上是返回元组。测试中可以用于同时返回状态码和响应体。

八、函数封装接口请求

自动化框架里最常见的是封装请求方法。

def send_api(method, url, headers=None, json=None):
    print(f"发送请求: {method} {url}")
    return {"code": 0, "message": "success"}

用例中只需要调用:

result = send_api("POST", "/api/login", json={"username": "tester"})
assert result["code"] == 0

这样接口请求逻辑统一维护。

九、函数封装断言

def assert_code(response, expected_code):
    assert response["code"] == expected_code

好处是断言失败信息可以统一处理,减少重复代码。

十、函数封装测试数据读取

def read_json_file(file_path):
    import json
    with open(file_path, "r", encoding="utf-8") as f:
        return json.load(f)

用例只关心数据,不关心读取细节。

十一、常见错误

1. 函数做太多事情

一个函数既登录、又请求、又断言、又写数据库,会很难维护。函数职责要清晰。

2. 没有返回值

函数内部打印了结果,但外部拿不到数据,后续无法断言。

3. 参数太多且顺序混乱

建议使用关键字参数或把参数封装成字典。

4. 可变默认参数

不要写 def func(data=[]) 这种形式,容易产生意外共享。

十二、面试回答模板

如果面试官问“函数参数和返回值怎么理解”,可以这样回答:

函数是为了封装重复逻辑,参数是传给函数的输入,返回值是函数执行后给外部继续使用的结果。在测试自动化中,我会把登录、请求封装、读取测试数据、数据库查询、断言和日志封装成函数。比如登录函数接收用户名和密码作为参数,返回 Token;请求函数接收 method、url、headers、json 等参数,返回响应对象;断言函数接收响应和预期 code,统一校验结果。这样可以减少重复代码,提高框架维护性。

十三、练习清单

  1. 写一个 URL 拼接函数;
  2. 写一个登录函数;
  3. 返回 Token;
  4. 写一个接口请求函数;
  5. 写一个断言函数;
  6. 写一个读取 JSON 文件函数;
  7. 练习默认参数;
  8. 练习关键字参数;
  9. 避免可变默认参数;
  10. 准备函数面试回答。

函数是自动化框架的组织方式。理解参数和返回值,才能把脚本从“能跑”提升到“可维护”。

配套刷题:

  • Python测试开发面试题
相关推荐

下一步可以看这些

面试通关软件测试面试通关系列精华文章

把面试题、项目、简历和训练营串成一套求职准备路径。

入行路线零基础入行软件测试专题路径

从测评、学习路线、项目、简历到面试,按顺序入行。

进阶路线初中级测试进阶高级专题路径

接口自动化、性能测试、CI/CD、复杂业务质量保障进阶路线。

AI 方向AI 测试学习路线专题页

大模型评测、RAG 测试、Agent 测试和 AI 自动化路线。

求职结果Offer 案例 / 学员案例展示

看看真实学员 Offer 案例,判断目标和学习投入是否匹配。

资料 / 交流群添加小牛微信

备注:资料、简历、AI 或找工作,领取对应资料或进交流群。

添加小牛微信
Prev
3. Python 字符串常用操作怎么用
Next
5. 异常处理在测试脚本中怎么用