cover_image

技术揭秘:打造酷家乐施工图专业级回归测试平台

极光 群核科技质量技术
2024年11月12日 04:00

背景介绍

施工图业务的核心是将3D设计方案转化为2D施工图纸,用于指导建筑和装修施工。在酷家乐的产品流程中,施工图位于末端,具体流程如下:

  1. 户型导入/设计:创建或导入房屋平面图。

  2. 硬装、水电、照明、定制、软装设计:完成室内设计的各个细节。

  3. 渲染:生成效果图和漫游图。

  4. 施工图设计:将3D设计内容转换为2D图纸,包括标注和标记。

  5. 导出施工图:最终输出施工图纸。

施工图业务的关键在于处理大量设计数据,将其精确转换为施工所需的2D图纸。这些图纸通常包含:

  • 平面布局图:俯视图显示墙体房间布局和门窗位置、天花图显示吊顶灯具等信息。

  • 立面图:展示墙体、窗户、门、软装家具、定制家具、墙面开关插座、装饰等的细节和相对位置坐标、标记。

  • 剖面图:展示内部结构。

  • 详图:放大特定构造节点。

  • 材料表与规格说明:列出所需材料及其规格。

  • 电气、水暖、通风系统图:描绘基础设施布局。

讲了这么多,那图纸长什么样呢?来看一套相对简单的软装图,其中主要包含了不同视角的户型、软装图例、标注、标记信息等。

图片

一套完整的施工图纸不仅包括软装图,还有定制图、硬装图和水电图等多种类型,每种图纸都涉及不同的细节和视角:

  • 定制图:展示定制柜体、橱柜、门窗等的具体尺寸和结构。

  • 硬装图:涵盖墙面、地面、天花板等硬装部分的材料和工艺。

  • 水电图:描绘水电管线、开关插座及电路布局。每种图纸可能包括平面图、立面图、剖面图、详图等,以满足施工的具体需求。此外,还需应对多种图纸格式(如PDF、DWG、JPG)和用户个性化配置,这使得图纸数量庞大且复杂。


因此,确保施工图的质量成为一项重大挑战,需要严格的质量控制措施来保证每张图纸的准确性和一致性。

业务核心链路分析:

如果将图纸引擎(含CAD输出)整体看做一个黑盒,那我们就仅需要关注关键的输入、输出,同理再分别将图纸引擎(图纸设计工具)作为黑盒,重点关注它的输出到ODA导出的中间数据即可。

图片

平台设计

初期平台核心需求

  1. 测试场景管理:支持不同设计方案与业务线的数据/图纸基线维护,便于管理和打包测试案例。

  2. 任务管理:涵盖任务集合的管理、执行与回溯功能。

  3. 自动化数据处理:实时获取前端应用输入的施工图数据,确保数据同步。

  4. 数据分析与对比:对图纸中的大量JSON数据进行分析、对比,并支持数据可视化。

  5. 图纸差异标记:实现不同格式图纸(PDF/JPG/DWG)的对比与差异标记。

平台业务架构
平台架构分为三大核心部分:

  1. 工具层:由多个独立的小工具构成,负责业务案例的导入生成、问题排查、加解密、配置推送与对比等工作,简化日常操作。

  2. 交互层:作为平台的核心交互界面,提供测试场景和基线管理、测试集构建、任务执行及结果报告等功能。

  3. 引擎层:提供底层技术支持,包括但不限于数据处理、分析对比和可视化能力,确保平台的高效运行与扩展性。此架构设计旨在支持灵活的工具集成与业务场景回归,确保系统的可扩展性和模块化特性。

图片


平台业务流程

整体流转采用了采集+回放的模式,通过不同的配置实现不同业务场景的组合,再针对各业务场景做集合配置来预定义好要准备回归的任务。通过任务来批量执行测试场景,采集测试数据后匹配基线进行对比,然后染色标记,然后将结果汇总输出,最后消息通知相关同学确认和分析。


图片

核心模块介绍
测试基线

  1. 建立测试场景:

    • 用户可以通过批量导入或手动建立方案和基线。

    • 支持对测试场景进行打标分类。

    • 区分不同环境(内网、外网)、任务类型(不同业务场景)和配置(选择不同的业务线数据、图纸生成等),实现灵活自定义。

  2. 基线导入:

    • 方便捞取线上真实用户方案,一键生成测试方案、基线和测试集合。

图片


手动录入:需要经历录入方案→ 录入测试基线→创建测试集合

图片


图片


图片

  • 基线生成结果

图片


图片


定义好不同的测试场景后,根据不同的业务类型生成基线:

  1. 定义测试场景:根据不同业务类型定义测试场景,并生成相应的基线。

  2. 数据采集任务:

    • 后端服务数据生成:使用封装的任务工具(如出图、标注等)获取测试数据并存储。

    • 设计方案数据采集:自动下发采集任务到Apollo平台(酷家乐内部UI自动化、接口自动化测试平台)。任务通过Apollo调度Hades-UI自动化框架执行,采集完成后回调平台接口上报数据。

回归任务
回归测试

  1. 数据采集与对比

  • 基于指定的业务代码版本(前后端版本可灵活指定)采集数据。

  • 进行图纸差异和数据差异的对比。

  • 生成可视化的对比结果并存储。

  1. 结果通知

  • 回归任务执行完成后,通过企业微信消息或邮件提醒相关人员进行分析和确认。

录入回归任务

  1. 任务配置:

  • 多选测试集合。

  • 指定环境、版本和对比规则。

  • 指定消息接收地址。

  • 设置定时任务。

图片


图片


  • 任务列表现在状态和进度,执行记录回溯图片


    图片

  • 消息通知:版本集成时,会根据接入卡点的任务结果,定时通知集成卡点的通过情况,由对应业务方同学分析确认后更新集成卡点以及基线更新等。
图片

图片

回归结果

数据对比结果,在施工图产品能力(viewer)的基础上做了改造,在数据对比(将业务数据转为json设定对比规则进行对比)的结果基础上进行业务数据的标记,然后通过viewer能力输出可视化的结果,提升了仅通过数据差异排查结果的效率。
  • 数据差异及可视化
图片

图片

结果列表 结果可方便获取原始数据、差异数据等,在执执行异常时也可以查看执行日志,也可以看到运行异常时的截图信息。图片

图纸对比会直接以图纸相似度作为通过or失败的标准,并输出差异的图纸。
图片

  • 报表:基于BizCharts4实现,参考文档:https://bizcharts.taobao.com/product/BizCharts4/gallery#PieChart
    图片

    图片

平台收益
降本增效

按每小时设计方案回归数计算,由原来的个位数/h提升至现在的数百个/H,效率提升百倍,可支持数千方案回归/Day.
图片

平台缺陷发现率

回归平台自动化缺陷发现率超过25%。
图片

图片

稳定性

平台在落地使用后,多次在上线前拦截业务线数据输入的问题和施工图输出图纸的问题,几乎杜绝了施工图图纸导出模块的衰退故障。
高P故障为0,与图纸输出模块相关的故障为0。
图片
图片

流程推广
测试左移

通过平台的回归能力,自动化测试左移到了开发自测和feature测试,更早的发现了问题,降低问题修复成本。

集成卡点和流程

推广至各业务线并建立了平台问题排查跟进解决的流程规范,并集成devops作为集成卡点。
图片

图片

图片

平台展望
自定义数据采集:

  • 目前是固定了数据采集的操作链路,未来希望开放自定义数据采集模块给各业务线,由其自行定义数据采集过程。平台仅负责通过输入的配置和数据进行数据对比及可视化结果输出。

全自动化的持续集成:

  • 目前在做回归时需要依赖手动部署和配置环境;未来希望能和前后端的持续集成打通,实现从代码merge开始的全流程持续集成;
  • 回归时目前仍需要人工选取回归的任务类型和case,未来希望在持续集成链路中根据代码的改动模块自动匹配回归的case和任务,提高测试精准度。

持续补充测试覆盖:

  • 模块case覆盖:定期维护各模块的测试用例覆盖。
  • 工单case覆盖:持续更新来自于工单场景的测试用例,与重点用户实际的设计方案保持同步。
  • 代码覆盖度量:持续补充模块的各核心模块代码覆盖率统计能力及代码覆盖率提升。

推荐阅读


继续滑动看下一个
群核科技质量技术
向上滑动看下一个