Skill: yontlly/testcase-filter (version 1.0.0)

--- name: testcase-filter description: 筛选测试用例Excel文件，提取P0/P1优先级用例，删除项目/产品列，重新编号并保持原格式 version: "1.1" author: custom license: MIT category: testing tags: - excel - testcases - filter - automation models: recommended: - claude-sonnet-4 - claude-opus-4 compatible: - claude-3-5-sonnet - gpt-4 - gpt-4o capabilities: - data_processing - file_manipulation - testing languages: - en - zh --- # 测试用例筛选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，支持批量处理。 #### 核心功能模块 ```python # 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用例：跳过 - ⏭️ 无优先级列：跳过 ## 技术细节 ### 单元格样式复制 完整复制以下样式属性： - 字体（字体、大小、颜色、粗体、斜体） - 边框（样式、颜色） - 填充（背景色、图案） - 对齐方式（水平、垂直） - 数字格式 - 保护 ### 合并单元格处理 ```python # 拆分前： # | 合并单元格内容 | # | | # | | # 拆分后： # | 合并单元格内容 | # | 合并单元格内容 | # | 合并单元格内容 | ``` ### 重新编号格式 - 格式：`TC{number:03d}` - 示例：TC001, TC002, TC003, ..., TC999 - 每个sheet独立编号 ## 使用场景 ### 1. 版本发布前测试用例筛选 ``` 场景：需要执行高优先级用例 输入：完整测试用例集 输出：P0/P1用例集 ``` ### 2. 回归测试用例准备 ``` 场景：准备回归测试用例集 输入：所有测试用例 输出：核心功能用例（P0/P1） ``` ### 3. 测试用例质量分析 ``` 场景：分析测试用例优先级分布 输入：原始用例文件 输出： - 按优先级筛选的用例集 - 处理统计报告 ``` ## 注意事项 1. **文件格式**：仅支持.xlsx格式（Excel 2007+） 2. **文件大小**：支持大文件处理（测试过10MB+文件） 3. **编码格式**：支持中文、英文、特殊字符 4. **性能优化**：大文件处理时建议关闭屏幕更新 5. **备份建议**：处理前建议备份原文件 ## 安装依赖 ```bash pip install openpyxl ``` ## 示例代码调用 ```python # 直接调用处理函数 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**


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)