测试用例筛选Skill
功能概述
本skill专门用于处理测试用例Excel文件,实现以下功能:
- 删除项目/产品列:自动识别并删除"项目/产品"、"产品/项目"、"产品"、"项目"等列
- 筛选P0/P1用例:提取每个sheet中"优先级"为"P0"或"P1"的测试用例行
- 跳过空优先级sheet:如果某个sheet中的"优先级"列数据均为空,则跳过此sheet
- 拆分合并单元格:将所有合并单元格拆分,并将内容自动填充到拆分的单元格中
- 重新编号:将筛选后的用例"编号"列重新从"TC001"开始编号
- 保持格式:输出文件完全保留原文件的格式、布局、样式和列宽
使用方法
基本用法
用户只需描述需求,例如:
- "帮我筛选这个测试用例文件,只保留P0和P1的用例"
- "处理PC功能点用例.xlsx,提取高优先级用例并重新编号"
- "筛选测试用例,优先级为P0或P1,编号从TC001开始"
技术实现
本skill使用Python + openpyxl实现,无需安装Excel,支持批量处理。
核心功能模块
# 1. 查找优先级列
def find_priority_column(sheet):
"""自动识别优先级列(支持中文"优先级"或英文"Priority")"""
# 2. 查找编号列
def find_number_column(sheet):
"""自动识别编号列(支持"编号"、"ID"、"No"、"序号")"""
# 3. 拆分合并单元格
def unmerge_and_fill_cells(sheet):
"""拆分合并单元格并填充内容到所有拆分后的单元格"""
# 4. 复制样式
def copy_cell_style(source_cell, target_cell):
"""完整复制单元格样式(字体、边框、填充、对齐等)"""
# 5. 处理Excel
def process_excel(input_file, output_file):
"""主处理函数:筛选、重新编号、保持格式"""
处理流程
输入文件
↓
分析文件结构
├─ 识别所有sheet
├─ 查找优先级列
└─ 统计P0/P1用例数量
↓
逐个sheet处理
├─ 拆分合并单元格
├─ 筛选P0/P1用例
├─ 复制表头和样式
├─ 重新编号(TC001-TCxxx)
└─ 保持格式和布局
↓
保存输出文件
↓
生成处理报告
处理示例
输入
- 文件名:PC功能点用例.xlsx
- Sheet数量:69个
- 总用例数:约10,000条
输出
- 文件名:PC功能点用例_筛选后.xlsx
- Sheet数量:51个(含P0/P1用例)
- 跳过:18个(无P0/P1用例)
- 编号:每个sheet从TC001开始连续编号
- 格式:完全保留原文件格式
处理统计
| 指标 | 数值 |
|---|
| 处理的sheet数 | 51 |
| 跳过的sheet数 | 18 |
| 合并单元格拆分 | 2000+ |
| 用例重新编号 | 2000+ |
支持的文件格式
优先级列识别
自动识别以下列名:
编号列识别
自动识别以下列名:
Sheet处理规则
- ✅ 有优先级列且有P0/P1用例:处理并保留
- ⏭️ 有优先级列但无P0/P1用例:跳过
- ⏭️ 无优先级列:跳过
技术细节
单元格样式复制
完整复制以下样式属性:
- 字体(字体、大小、颜色、粗体、斜体)
- 边框(样式、颜色)
- 填充(背景色、图案)
- 对齐方式(水平、垂直)
- 数字格式
- 保护
合并单元格处理
# 拆分前:
# | 合并单元格内容 |
# | |
# | |
# 拆分后:
# | 合并单元格内容 |
# | 合并单元格内容 |
# | 合并单元格内容 |
重新编号格式
- 格式:
TC{number:03d}
- 示例:TC001, TC002, TC003, ..., TC999
- 每个sheet独立编号
使用场景
1. 版本发布前测试用例筛选
场景:需要执行高优先级用例
输入:完整测试用例集
输出:P0/P1用例集
2. 回归测试用例准备
场景:准备回归测试用例集
输入:所有测试用例
输出:核心功能用例(P0/P1)
3. 测试用例质量分析
场景:分析测试用例优先级分布
输入:原始用例文件
输出:
- 按优先级筛选的用例集
- 处理统计报告
注意事项
- 文件格式:仅支持.xlsx格式(Excel 2007+)
- 文件大小:支持大文件处理(测试过10MB+文件)
- 编码格式:支持中文、英文、特殊字符
- 性能优化:大文件处理时建议关闭屏幕更新
- 备份建议:处理前建议备份原文件
安装依赖
pip install openpyxl
示例代码调用
# 直接调用处理函数
from testcase_filter import process_excel
input_file = "测试用例.xlsx"
output_file = "测试用例_筛选后.xlsx"
process_excel(input_file, output_file)
常见问题
Q1: 为什么某些sheet被跳过了?
A: 可能原因:
- 该sheet没有"优先级"列
- 该sheet的优先级列全为空
- 该sheet没有P0或P1用例
Q2: 编号会重复吗?
A: 不会。每个sheet独立编号,从TC001开始。
Q3: 合并单元格会影响数据吗?
A: 不会。合并单元格拆分后,内容会填充到所有拆分的单元格中,确保数据完整性。
Q4: 输出文件格式会改变吗?
A: 不会。脚本完整复制所有样式、格式、列宽、行高,保持原文件外观一致。
更新日志
v1.0 (2026-04-15)
- ✅ 初始版本发布
- ✅ 支持P0/P1用例筛选
- ✅ 支持合并单元格拆分
- ✅ 支持自动重新编号
- ✅ 支持格式完全保留
反馈与支持
如有问题或建议,请通过以下方式联系:
Powered by Claude Code & Python