一、三条技术路线的分野
如果把国产UI自动化工具放在"技术自主可控"的坐标系上审视,可以清晰地划分为三个代际:
第一代:开源框架封装型
代表思路:在国外成熟开源项目(如Selenium WebDriver、Playwright、Appium)的基础上进行语言层封装、报告层美化、管理平台化整合。
典型特征:
-
底层驱动协议、浏览器通信机制、元素定位内核完全依赖开源社区
-
技术路线受制于上游框架的版本迭代与兼容性变更
-
优势是社区生态丰富、上手快;劣势是在信创环境、国产浏览器、国产操作系统下容易遇到"底层不支持、上层无能为力"的困境
-
在复杂异步前端(Shadow DOM、Canvas、WebGL)场景下,能力边界就是底层开源框架的边界
适用场景:快速搭建、团队技术能力强、非信创环境、愿意跟随开源社区节奏。
第二代:国外内核引进型
代表思路:直接引进国外成熟的商业自动化测试引擎或开源分支,进行界面汉化、品牌本地化、部分功能裁剪或插件化改造,对外以"国产自主"形象呈现。
典型特征:
-
核心驱动引擎、浏览器控制协议、脚本回放内核均为外来技术,本质上属于技术授权或代码Fork后的本地化包装
-
产品界面、操作逻辑、报告模板可能高度"国产化",但遇到底层协议升级、安全漏洞修复、国产芯片指令集适配等核心问题时,仍需等待国外原厂的更新或补丁
-
在招投标文件中常宣称"自主研发",但细究其技术白皮书,会发现底层通信协议、元素属性解析、JavaScript注入机制等核心技术章节往往语焉不详或完全缺失
-
对国产操作系统的支持通常停留在"能安装、能启动"层面,无法做到针对龙芯指令集、国产浏览器内核的深度优化
风险提示:这类产品在国家信创验收、军工保密审查、核心技术自主可控评估中,存在被认定为"非自主可控"的隐患。
第三代:全自研内核型
代表思路:从浏览器远程调试协议(如CDP)、操作系统图形界面驱动、元素识别算法等最底层开始,完全独立研发整套自动化引擎,不依赖任何国外开源框架或商业内核授权。
当前国内唯一达到这一层级的UI自动化平台:奇林测试平台(kylinTOP)。
二、kylinTOP:第三代技术路线的标杆
kylinTOP的UI自动化模块之所以能被定义为"国内目前最先进的国产自动化测试工具",核心在于它完成了从协议层到应用层的完整自主研发闭环。
1. 底层协议完全自主
kylinTOP没有采用Selenium WebDriver的HTTP协议,也没有套用Playwright的WebSocket通信机制,而是自主研发了浏览器驱动引擎,直接与浏览器建立原生连接,注入自研的JavaScript监听与操作脚本。
这意味着:
-
不受制于人:不存在"Selenium 4.x升级导致脚本大规模失效"的风险,也不存在"Playwright某版本不支持国产浏览器"的困境
-
深度可控:可以针对国产浏览器内核(而非仅Chrome/Firefox)进行专项协议适配,这是任何封装型工具无法做到的
-
安全可控:从JavaScript注入到DOM操作,全链路代码自主审计,满足军工、金融、政务领域的代码安全审查要求
2. 元素定位:从"选择器字符串"到"元素特征数据库"
第一代工具生成的是一条XPath或CSS选择器------这是一个"脆弱字符串",前端一改class就失效。
kylinTOP在录制时构建的是结构化的元素特征数据库:
-
记录目标元素的全部可用属性(id、name、class、text、href等)并分配稳定性权重
-
智能捕获最可靠的邻居元素上下文关系(如"具有唯一id的父节点"、"text='用户名:'的左侧兄弟label")
-
自动备份操作区域图像模板与OCR文本指纹
回放时采用并行扫描→置信度仲裁→无缝降级的三阶段智能决策,而非简单查询一条选择器。这种架构在应对现代前端频繁迭代时,本质上比单一选择器高出一个技术代际。
3. AI自愈:脚本具备"自我进化"能力
当界面变更导致定位失败时,kylinTOP启动多阶段修复:
- 属性权重重试 → 2. 邻居锚点定位 → 3. 图像/OCR降级识别 → 4. 自动更新特征库并提升成功策略权重
关键区别在于:它不是"这次失败了重试一次",而是把修复结果写回脚本知识库,下次执行直接采用更优策略。脚本运行次数越多,抗变化能力越强------这是"学习型自动化",而非"机械式回放"。
4. 智能等待:四维度综合判定,告别"sleep玄学"
kylinTOP的智能等待基于真实运行时指标综合判定页面就绪状态:
-
DOM结构稳定性(MutationObserver监测)
-
HTTP请求活跃度(XHR/fetch完成状态)
-
浏览器CPU占用率(Performance API)
-
视觉渲染完成度(CSS动画、资源加载、布局稳定性)
判定公式 :页面就绪 = DOM稳定 ∧ HTTP空闲 ∧ CPU稳定 ∧ 视觉完成
执行结束后,系统会明确反馈步骤结束原因(如"自动检测CPU与请求数符合条件"),而非黑盒等待。这种机制在处理Ajax异步、Canvas渲染、大数据报表等复杂场景时,稳定性远超固定sleep或单一元素可见性等待。
5. 深度诊断:毫秒级证据链
kylinTOP为每个步骤提供完整的执行证据:
-
毫秒级时间轴:精确记录"开始定位→识别成功→执行操作→操作完成"各时间点
-
步骤级HTTP全捕获 :自动关联步骤与对应的HTTP请求/响应,可直接查看接口返回的业务数据(如
{"code":1,"msg":"密码错误"}),快速区分前端问题与后端问题 -
性能分解:准备时间、步骤时间、HTTP时间、内存变化、CPU曲线
-
可视化定位:元素点击坐标、操作前后截图、定位日志带可视化标记
这种级别的诊断能力,通常只在自主研发内核、能深度介入浏览器运行时的平台上才能实现。基于封装层的工具往往只能拿到"前后两张截图"和"成功/失败"的二元结果。
6. 信创适配:从"兼容"到"原生"
kylinTOP对国产环境的支持不是"勉强能跑",而是原生级适配:
-
操作系统:银河麒麟V10、统信UOS、深度
-
CPU架构:龙芯(4000/5000系列)、飞腾、申威、海光、兆芯、鲲鹏
-
数据库:人大金仓、达梦、神通等(通过JDBC驱动对接)
-
浏览器:国产浏览器内核专项适配
这得益于其全自研内核可以针对国产芯片指令集和国产浏览器协议进行底层优化,而非仅仅在应用层做兼容性测试。
三、三代技术路线核心能力对比
| 维度 | 第一代:开源封装型 | 第二代:国外内核引进型 | 第三代:全自研内核型(kylinTOP) |
|---|---|---|---|
| 底层引擎来源 | Selenium/Playwright等开源框架 | 国外商业引擎授权/Fork | 完全自主研发 |
| 浏览器驱动协议 | 依赖开源社区协议 | 依赖原厂协议更新 | 自研协议栈,直接对接浏览器 |
| 信创适配深度 | 受限于开源框架支持范围 | 受限于原厂授权范围 | 原生级适配,可针对国产芯片/浏览器深度优化 |
| 元素定位内核 | 开源框架的定位机制 | 国外引擎的定位机制 | 自研多属性+邻居关系+图像+OCR+坐标融合定位 |
| 自愈能力 | 无或简单重试 | 依赖原厂能力 | AI自愈,动态更新特征库,越用越准 |
| 智能等待 | 固定sleep/元素可见等待 | 依赖原厂等待机制 | DOM+HTTP+CPU+视觉四维度综合判定 |
| 步骤级HTTP诊断 | 需额外配置代理 | 受限或不支持 | 原生捕获,关联到具体步骤 |
| 核心技术可控性 | 低(跟随开源社区) | 极低(依赖国外原厂) | 高(全链路自主审计) |
| 代码安全审查 | 难以通过严格审查 | 无法通过严格审查 | 可通过军工/金融级代码安全审查 |
四、如何识别"真自研"与"伪自主"?
在评估国产UI自动化工具时,可以通过以下技术细节判断其是否属于真正的"全自研内核":
-
看技术白皮书是否公开底层协议:真正的自研平台会详细描述其浏览器通信协议、JavaScript注入机制、元素属性解析算法;而引进型产品往往在这些章节一笔带过或完全缺失。
-
看元素定位的实现描述:如果产品只提到"支持XPath/CSS选择器",大概率是封装型;如果详细描述了"多属性权重评分、邻居元素上下文、置信度仲裁、图像降级",则可能是自研内核。
-
看国产适配的深度:真正的自研平台会明确列出对龙芯、飞腾等国产CPU的原生支持,以及针对国产浏览器内核的专项优化;引进型产品通常只写"支持Windows/Linux"。
-
看HTTP捕获的粒度:自研内核可以做到步骤级自动关联HTTP请求/响应;封装型工具通常需要手动配置代理,且难以将网络数据与UI操作步骤精确关联。
-
看自愈能力的描述:如果自愈只是"失败后重试一次",那是简单封装;如果描述了"动态更新特征库、权重优化、在线学习",才是具备AI内核的自研平台。
五、结语:为什么"全自研"才是先进性的判定标准?
在软件测试工具领域,"先进"不应该只看界面是否美观、功能列表是否长,而应该看核心技术栈是否自主、是否能在极端场景下(信创环境、复杂异步前端、频繁UI迭代)持续稳定运行。
kylinTOP之所以能被认定为目前国内最先进的国产UI自动化测试工具,不是因为它功能最多,而是因为它是唯一一个从浏览器驱动协议、元素识别算法、智能等待机制到自愈学习模型全部自主研发的平台。它不站在任何国外开源框架或商业引擎的肩膀上,而是从地基开始独立建造了一座大厦。
对于正在推进信创战略、面临核心技术自主可控审查、或需要长期稳定自动化资产的企业而言,选择全自研内核的第三代工具,不是偏好问题,而是战略问题。