当前位置: 首页 > news >正文

AIGC测试报告优化:新增all_test_schedule字段保留完整测试轮次

数据流说明

禅道数据库 → casedatacount.py (get_test_rounds) → config.json (test_schedule) → Word模板↓ 不变缺陷统计(合并时间)

方案:新增 all_test_schedule 字段

目标:保持原有 test_schedule 不变,新增 all_test_schedule 用于Word模板显示所有轮次(包括冒烟)


修改点1:casedatacount.py - 新增方法

casedatacount.py 中新增方法 get_all_test_rounds(不合并时间,返回所有任务):

def get_all_test_rounds(self, conn, product_id):"""获取所有测试轮次信息(包括冒烟测试),不合并时间"""test_schedule = []with conn.cursor() as cursor:# 查询所有测试任务(不过滤冒烟)sql = """SELECT id, name, `begin`, `end`FROM zt_testtaskWHERE product = %s AND name LIKE '%%第%%轮%%'AND deleted = '0'ORDER BY begin, name"""cursor.execute(sql, (product_id,))tasks = cursor.fetchall()for task in tasks:task_id, task_name, begin_date, end_date = task# 提取轮次编号round_num = self.extract_round_number(task_name)if not round_num:continue# 判断是否为冒烟测试is_smoke = '冒烟' in task_namebegin_str = begin_date.strftime('%Y-%m-%d') if begin_date else ""end_str = end_date.strftime('%Y-%m-%d') if end_date else ""# 获取测试人员testers = self.get_testers_for_task(conn, task_id)schedule_item = {"round_number": round_num,"round_name": task_name,  # 新增:保留原始任务名称"begin_time": begin_str,"end_time": end_str,"testers": testers,"test_work": "冒烟测试" if is_smoke else ("回归测试" if round_num > 1 else "核心功能验证"),"remark": task_name  # 用于Word模板备注}test_schedule.append(schedule_item)return test_schedule

修改点2:casedatacount.py - generate_config 方法

generate_config 方法中添加 all_test_schedule 字段:

# 获取所有测试任务(用于Word模板显示全部轮次)
all_test_schedule = self.get_all_test_rounds(conn, product_id)config = {..."test_schedule": test_schedule,      # 原有合并后的数据(用于缺陷统计)"all_test_schedule": all_test_schedule,  # 新增:所有任务(包括冒烟)...
}

修改点3:set_test_schedule.py - 适配新字段

修改 set_test_schedule.py 函数,增加对 round_name 的处理:

# 第102-111行,修改 schedule_row 构建
schedule_row = {"序号": len(test_schedule) + 1,  # 使用序号递增"中试轮次": round_data.get("round_name", f"第{round_number}轮"),  # 使用原始名称"开始时间": begin_time,"结束时间": end_time,"工作周期": work_period,"参与人": testers_str,"测试工作安排": round_data.get("test_work") or "","备注": round_data.get("remark") or ""  # 原任务名称作为备注
}

修改点4:main_report_generator.py - 使用新字段

修改数据收集逻辑,优先使用 all_test_schedule

# 第691行附近,修改 collect_test_schedule 方法
def collect_test_schedule(self):"""收集测试时间表数据"""schedule_data = self.config.get("all_test_schedule") or self.config.get("test_schedule")...

对比总结

字段 原逻辑 新逻辑
test_schedule 合并后的时间(用于缺陷统计) 保持不变
all_test_schedule 新增,包含所有任务(包括冒烟)
Word模板 使用 test_schedule 改为使用 all_test_schedule
节假日过滤 已有(calculate_working_days 保持不变

预期输出效果

"all_test_schedule": [{"round_number": 1, "round_name": "中试第1轮", "begin_time": "2025-11-17", "end_time": "2025-11-26", "test_work": "核心功能验证"},{"round_number": 2, "round_name": "中试第2轮冒烟", "begin_time": "2025-12-02", "end_time": "2025-12-02", "test_work": "冒烟测试"},{"round_number": 2, "round_name": "中试第2轮", "begin_time": "2025-12-03", "end_time": "2025-12-09", "test_work": "回归测试"},{"round_number": 3, "round_name": "中试第3轮", "begin_time": "2025-12-11", "end_time": "2025-12-12", "test_work": "回归测试"}
]
http://www.jsqmd.com/news/486706/

相关文章:

  • 2026年IEEE TNSE SCI2区,基于预测的双阶段分布式任务分配方法+搜救场景中最大化任务分配,深度解析+性能实测
  • 微信聊天记录数据管理全方位攻略:从备份到深度分析的完整指南
  • 图片旋转检测系统的自动化测试方案
  • AMD显卡装ComfyUi
  • ComfyUI实战:用ControlNet打造高扫描率的艺术二维码设计
  • GLM-OCR保姆级教程:零基础3步搭建,轻松识别图片文字和表格
  • 国内知名三维扫描仪器光学跟踪相机支架/光学窗口框架/手持式扫描仪电池仓相机安装基板零件CNC加工厂家推荐 - 余文22
  • 春联生成模型-中文-base实战:Java后端集成与SpringBoot服务开发
  • 效率提升:基于快马平台一键生成17.100.c.cm规范的集成工具代码
  • AHB协议突发传输模式详解与Verilog实现
  • Qwen-Image-2512+Pixel Art LoRA参数详解:Tile Size与Pixel Grid Alignment设置
  • 冥想第一千八百二十四天(1824)
  • DirectX12 Spec 深度解析:从驱动开发到性能优化
  • RexUniNLU效果展示:11类中文NLP任务统一框架惊艳输出示例
  • NuttX实战入门:从零部署到首个例程在嵌入式设备上运行
  • 2026年NMN品牌榜单实测|10大热门品牌真实对比 - 资讯焦点
  • 开源项目技术挑战与全周期解决方案:dnGrep本地化实践指南
  • Mathematica三维绘图实战:从基础函数到复杂曲面设计
  • LeetCode Hot100与代码随想录:我的高效刷题方法论
  • 2026商协会数字化平台优质品牌推荐指南 - 资讯焦点
  • Qt QThread安全退出实践指南:从理论到代码实现
  • Vue3 实战:打造数据看板(表头固定、列表无缝滚动)与 vue3-seamless-scroll 进阶配置详解
  • 基于STM32的声光同步LED系统设计与实现
  • 卡证检测矫正模型前端集成:JavaScript实现实时证件上传与预览
  • CTFHUB技能树-Misc-流量分析-ICMP数据隐藏技巧实战
  • C#中goto语句的5个实际应用场景:什么时候用反而更清晰?
  • 广柔扁平排线电缆在人形机器人应用优势探讨 - 资讯焦点
  • 树莓派激光雷达小车避障与路径规划:Python/C++双版本实战(避坑指南)
  • Gstreamer多线程环境下g_main_loop_new的陷阱与解决方案
  • CTFshow Web内网渗透实战:从SSH到Phar反序列化攻击