'提取高优先级测试用例'

Automation
FilterExcelTestcases测试

筛选测试用例Excel文件,提取P0/P1优先级用例,删除项目/产品列,重新编号并保持原格式

Install

openclaw skills install @yontlly/testcase-filter

测试用例筛选Skill

功能概述

本skill专门用于处理测试用例Excel文件,实现以下功能:

  1. 删除项目/产品列:自动识别并删除"项目/产品"、"产品/项目"、"产品"、"项目"等列
  2. 筛选P0/P1用例:提取每个sheet中"优先级"为"P0"或"P1"的测试用例行
  3. 跳过空优先级sheet:如果某个sheet中的"优先级"列数据均为空,则跳过此sheet
  4. 拆分合并单元格:将所有合并单元格拆分,并将内容自动填充到拆分的单元格中
  5. 重新编号:将筛选后的用例"编号"列重新从"TC001"开始编号
  6. 保持格式:输出文件完全保留原文件的格式、布局、样式和列宽

使用方法

基本用法

用户只需描述需求,例如:

  • "帮我筛选这个测试用例文件,只保留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+

支持的文件格式

优先级列识别

自动识别以下列名:

  • 优先级
  • Priority
  • 优先级等级

编号列识别

自动识别以下列名:

  • 编号
  • ID
  • No
  • 序号
  • 用例编号

Sheet处理规则

  • ✅ 有优先级列且有P0/P1用例:处理并保留
  • ⏭️ 有优先级列但无P0/P1用例:跳过
  • ⏭️ 无优先级列:跳过

技术细节

单元格样式复制

完整复制以下样式属性:

  • 字体(字体、大小、颜色、粗体、斜体)
  • 边框(样式、颜色)
  • 填充(背景色、图案)
  • 对齐方式(水平、垂直)
  • 数字格式
  • 保护

合并单元格处理

# 拆分前:
# | 合并单元格内容 |
# |                |
# |                |

# 拆分后:
# | 合并单元格内容 |
# | 合并单元格内容 |
# | 合并单元格内容 |

重新编号格式

  • 格式:TC{number:03d}
  • 示例:TC001, TC002, TC003, ..., TC999
  • 每个sheet独立编号

使用场景

1. 版本发布前测试用例筛选

场景:需要执行高优先级用例
输入:完整测试用例集
输出:P0/P1用例集

2. 回归测试用例准备

场景:准备回归测试用例集
输入:所有测试用例
输出:核心功能用例(P0/P1)

3. 测试用例质量分析

场景:分析测试用例优先级分布
输入:原始用例文件
输出:
  - 按优先级筛选的用例集
  - 处理统计报告

注意事项

  1. 文件格式:仅支持.xlsx格式(Excel 2007+)
  2. 文件大小:支持大文件处理(测试过10MB+文件)
  3. 编码格式:支持中文、英文、特殊字符
  4. 性能优化:大文件处理时建议关闭屏幕更新
  5. 备份建议:处理前建议备份原文件

安装依赖

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用例筛选
  • ✅ 支持合并单元格拆分
  • ✅ 支持自动重新编号
  • ✅ 支持格式完全保留

反馈与支持

如有问题或建议,请通过以下方式联系:

  • 提交Issue
  • 发送邮件至支持团队

Powered by Claude Code & Python