一、UI 自动化测试的难点在哪里
从软件产品层面来看:
- 元素变化比较快,现在很多平台都是基于微服务架构,模块化和低代码已经变成了产品的标配,不是模块化的产品都不好意思拿出来说事,页面对应元素随着版本迭代千变万化;
- 元素定位方法不统一,很多产品在 Web 开发是时候并没有给元素设置固定的 ID/Name,很多元素定位都需要基于 xpath 或者 css 等,需要花费大量人力去定位。
从测试执行层面来看:
- 元素复用比较难,一个元素可能会引用在多个 UI 自动化测试场景中,如果一个元素的改变需要修改所有相关的 UI 自动化脚本,耗时耗力;
- 现有的很多 UI 测试录制软件不够智能化,以 Selenium IDE 为例,录制的步骤会有很多无效步骤,对上传文件等场景也不能很好的覆盖,录制的脚本再次执行都会因为各种原因跑不起来。
从企业管理层面来看:
- 缺少没有平台化的工具,对测试人员要求比较高,需要具备一定的代码基础,不具备普适性;
- UI 自动化测试普遍被认为是投入产出比不高的测试,对 UI 自动化测试的投入基本很难获得企业管理者的认可。
二、有没有什么比较好的平台来去做 UI 自动化测试
MeterSphere UI 测试模块围绕应用系统的 用户界面 提供以下主要功能:
- 元素库:平台提供元素库的功能,通过创建元素库,可以把 UI 自动化场景中的单个步骤,进行统一管理,达到页面元素在不同 UI 场景中复用的效果。
- UI 自动化:支持手动创建 UI 自动化场景和导入 SeleniumIDE 工具录制好的 side 脚本文件,支持添加浏览器操作、 弹窗操作、元素操作、鼠标操作、输入操作、流程控制等步骤,并提供查看元素库、前置操作、后置操作、错误处理高级功能。
- 测试报告:提供直观、美观的页面对 UI 测试的结果进行可视化展示,可查看场景全部步骤和失败步骤,以及控制台详情,并且支持对步骤执行时的 UI 截图预览。
MeterSphere 针对 UI 自动化测试主要优势在于:
- 纯自然语言编写,降低自动化脚本编写门槛;
- 集中管理页面元素,减少因页面变更频繁带来的影响;
- “搭积木” 式的场景编排能力,复用性强,有效提升脚本编写效率;
- 用例平台化管理,易管理、易维护,更利于团队协作。
最后说下,MeterSphere 从技术层面解决了一部分 UI 自动化测试编写、管理、执行等问题,但是企业在考虑上 UI 自动化平台时还是要结合被测系统类型、测试人员技术能力、投入产出比等多种因素去衡量。