列表与元组——数据收纳大师与测试用例管理

主题“列表是测试工程师的百宝箱,元组是需求文档的棺材板”

一、今日目标

  1. ✅ 掌握列表增删改查的「收纳奥义」与元组的「封印大法」
  2. ✅ 用列表推导式生成《十大最没用编程建议》(测试工程师吐槽特别版)
  3. ✅ 实现测试用例集合的动态管理(增删改查)
  4.  隐藏任务:用元组记录永不更改的测试环境配置

二、前置知识:数据容器的「人格分裂」

1. 列表(list):代码界的收纳狂魔

幽默定义

列表就像测试工程师的桌面——什么都能往里扔,且永远在找东西!

基本操作

# 创建测试用例收纳箱  
test_cases = ["登录测试", "支付测试", "并发测试"]  

# 增:需求又双叒叕变更了!  
test_cases.append("防秃头压力测试")  

# 删:PM说这个需求不做了  
removed_case = test_cases.pop(1)  # 删除"支付测试"  

# 改:修复用例名称  
test_cases[0] = "新用户登录测试"  

# 查:找用例(永远在翻箱倒柜)  
if "并发测试" in test_cases:  
    print("并发测试还在!")  

2. 元组(tuple):代码界的保险箱

程序员冷知识

元组一旦创建无法修改——就像老板承诺的“这次需求绝对不改了”

测试场景

# 定义测试环境配置(谁敢动就报错)  
test_env = ("测试服务器", "192.168.1.101", 8080)  

# 试图修改(小心触发警报!)  
test_env[2] = 9090  # 报错:TypeError  

三、代码实战:《十大最没用编程建议》生成器

1. 需求分析

  • 用列表推导式快速生成程序员吐槽清单
  • 测试思维:数据驱动测试中常用列表生成测试数据

2. 代码实现

import random  

# 原材料池(可扩展)  
verbs = ["重启", "注释", "删库"]  
nouns = ["电脑", "代码", "产品经理"]  
adverbs = ["虔诚地", "用力地", "边哭边"]  

# 列表推导式生成建议  
bad_advices = [  
    f"遇到BUG就{random.choice(verbs)}{random.choice(nouns)}"  
    for _ in range(10)  
]  

# 添加测试工程师专属建议  
bad_advices.extend([  
    "所有报错都try-except掉",  
    "测试环境直接切生产"  
])  

# 随机展示  
print("《让代码下地狱的十大建议》")  
for i, advice in enumerate(bad_advices[:10], 1):  
    print(f"{i}. {adverse}{random.choice(adverbs)}执行:{advice}")  

运行示例

《让代码下地狱的十大建议》  
1. 请用力地执行:遇到BUG就删库产品经理  
2. 请边哭边执行:测试环境直接切生产  
...  

四、测试工程师特别篇:用例管理

1. 动态管理测试用例集

# 从文件读取用例(示例)  
with open("test_cases.txt") as f:  
    cases = [line.strip() for line in f]  

# 批量添加新需求  
new_cases = ["性能测试", "安全测试"]  
cases.extend(new_cases)  

# 过滤无效用例  
cases = [c for c in cases if "测试" in c]  

# 生成测试计划  
print(f"今日待测:{len(cases)}个用例")  

2. 元组应用:环境配置管理

# 定义不同环境配置  
ENV_PROD = ("生产服务器", "10.0.0.1", 80)  # 谁敢动?  
ENV_TEST = ("测试服务器", "192.168.1.2", 8080)  

# 快速切换环境  
current_env = ENV_TEST  
print(f"当前环境:{current_env[0]}({current_env[1]}:{current_env[2]})")  

五、避坑指南:数据容器的社死现场

1. 列表的深浅拷贝灾难

# 错误示范(改一个全改)  
test_data =  * 3  
test_data[0][0] = 1  # 输出:[[1], [1], [1]]  

# 正确操作  
test_data = [[0] for _ in range(3)]  

2. 元组的伪装术

# 你以为不能改?  
fake_tuple = ([1,2], 3)  
fake_tuple[0].append(3)  # 成功!输出:([1,2,3], 3)  

六、课后实战任务

  1. 扩展建议生成器:让用户投票最没用的建议(用列表记录票数)
  2. 环境配置保护:尝试修改元组中的列表元素,观察是否触发警报
  3. 测试数据生成:用列表推导式创建100组登录测试数据

七、今日总结

  • 你已解锁成就:数据收纳宗师 + 测试用例管理大师
  • 测试思维:列表是参数化测试的数据载体,元组保障核心配置安全
  • 明日预告:字典与集合——开发《测试工程师黑话词典》

课后任务提交格式

# 你的天才建议  
bad_advices.append("紧急需求请直接rm -rf /*")  

知识扩展

  • 在自动化测试框架中,常用列表推导式快速生成测试数据
  • 高级技巧:namedtuple可为元组字段命名(适合测试配置)
from collections import namedtuple  
EnvConfig = namedtuple('EnvConfig', ['name', 'ip', 'port'])  
test_env = EnvConfig('测试环境', '192.168.1.101', 8080)  
print(test_env.ip)  # 输出:192.168.1.101  

你可能感兴趣的:(python)