技术选型丨MeterSphere为什么选择Selenium作为UI自动化框架?

2022年5月4号,MeterSphere开源持续测试平台正式发布v1.20 LTS版本。这一版本新增了社区非常期待的UI测试模块。伴随着UI测试功能的上线,MeterSphere项目也践行了“一站式持续测试平台”的承诺,实现了对测试跟踪、接口测试、UI测试和性能测试的一站式覆盖。

MeterSphere的UI测试模块包含元素库、UI自动化、测试报告三大部分,设计理念是基于POM(Page Object Model)页面对象模式。对于UI自动化测试框架的选择,经过多方对比和深入研究,MeterSphere项目组最终选择了Selenium开源框架作为UI自动化方案。

有人可能会问:为什么MeterSphere会选择古老的Selenium框架,而不转用更新的Cypress、TestCafe呢?下面就跟大家分享一下MeterSphere项目组技术选型的思路。

UI自动化市场的现状

在这里插入图片描述

“软件质量报道”发布的《2021年测试工具调研报告》显示,在自动化测试框架方面,有35.9%企业或组织使用了Selenium IDE+Grid+WebDriver的组合框架,另外31.4%使用的是自研框架,其余的用户会选择Robot Framework、Cypress等框架。

从这个调查可以看出,Selenium依然是当前大多数企业在自动化测试框架方面的不二之选。尽管Selenium框架在2006年就创立了,距今已经16年的时间,在此期间其他各种开源测试框架不断涌现,但依然没有撼动Selenium的领导地位。

在这里插入图片描述

另外,2022年4月,MeterSphere项目组针对UI测试功能的上线还举办了一次内测征集活动。我们共收到了来自社区的219份报名表单。上图是此次活动的报名样本分析,我们也可以看到,Selenium是用户最为常用的UI测试工具,使用Selenium的用户占据了总样本数的52.05%。

MeterSphere UI自动化框架的选型

  1. Web端UI自动化实现的基本原理

Web端UI自动化的实现方式有三种:

■ 注入脚本到被测应用:我们知道,各大浏览器厂商都对外提供了原生API,这是Web端UI自动化的基础。最早Selenium 1.0版本(也就是Selenium RC版本)就是利用原生API将测试脚本转化为可以被浏览器直接使用的JavaScript代码,并且注入到被测试网页来运行的。基于这一思想,后面诞生了诸多UI自动化框架,例如Cypress等。

■ 基于WebDriver:在Selenium 2.0时,UI自动化的实现方式变成了WebDriver。WebDriver是对原生浏览器API的封装,在WebDriver的基础上Selenium提供了多种语言的SDK,所以我们今天可以看到各种不同语言的Selenium脚本。随后,基于WebDriver也诞生了一些其他的自动化测试框架,例如Protractor、WebDriverIO等。

■ 直接调用浏览器原生API:由于市面上使用这种方式实现的框架比较少,这里就不多赘述了。

总的来说,不管是Selenium还是其他注入型框架,其底层原理只有一个,那就是直接或者间接地基于浏览器的原生API。

  1. 主流UI自动化框架的技术对比

在这里插入图片描述

MeterSphere项目组对主流开源UI测试框架进行了调研对比,总结成了上面的表格。从表格中可以看出,主流的开源UI测试框架主要是WebDriver以及浏览器注入脚本到被测应用两种实现原理。

以下是Selenium在各方面技术/特性与其他测试框架的对比:

■ 脚本语言支持方面,Selenium、Playwright支持的最多。因为不同的公司、不同的技术栈,程序员使用的语言都不一样,支持的语言更多占据的优势就更大,因此Selenium拥有了更多的潜在用户群体;

■ 从浏览器的支持程度来看,TestCafe支持的最多,Selenium与其他几个框架则大同小异,而Cypress支持的相对较少,且不支持运用广泛的IE和Safari浏览器;

■ 多Tab,iFrame支持及并行测试方面,Selenium也都是支持的,而Cypress则都不支持;

■ 原生DOM选择器方面,虽然Playwright(到底是微软)支持的最多,但Selenium也能够支持主流的两种选择器CSS和XPath;

■ 在录制插件和解决方案方面,Selenium也是做得比较好的。Protractor、WebDriverIO因为和Selenium同宗同源,所以差异不大。而Cypress、TestCafe、Playwright在这两方面则相对较差,都没有比较好的解决方案。

总的来说,Selenium在脚本语⾔、浏览器⽀持、并发、分布式,以及插件录制、视频录制⽅⾯都有完整的⽅案,并且与JMeter(WebDriver Sampler)有深度集成。从最⼴⼤⽤户群体的⻆度、从较为快速地搭建我们的⾃动化测试平台的⻆度,以及从稳定性及功能完备的⻆度来说,Selenium都是最符合MeterSphere UI测试模块第⼀版实际需求的。

Selenium的短板在哪里?

当然,作为软件开发的从业者,选择某一种技术必然要承担其技术负债。Selenium虽然具备以上提及的多种优点,但Selenium有以下4个方面的困难。而这4个困难恰恰是当今UI自动化不被看好的主要原因。

  1. 元素定位困难。随着打包编译等技术的不断发展,使用了新的现代化的条件渲染引擎后,页面元素定位复杂多变,依靠Selenium中原有的ID、CSS、XPath等选择器编写的脚本有时候不能很好地工作,原先的定位方式不再适用;

  2. 等待元素无法做到自动等待。当测试运行的服务发生异常、资源不够或者网络拥堵时,页面元素的渲染时间会受到影响。由于Selenium是通过WebDriver控制浏览器,需要用户自己去管理等待时间,而这个时间通常都是不太固定的;

  3. 插件录制会把不必要的步骤录制下来。所有的录制插件都会录制非常多的不必要步骤,比如点击一个按钮,插件会把鼠标移动的过程也录制进去;

  4. 人工维护元素定位非常困难,工作量非常大。当UI测试的用例数量愈加庞大,元素定位的维护就会变得相当困难,当需求发生变更时,页面也可能随之发生改变。而这一改变对于不熟知前端代码的测试人员来说通常是难以察觉的。

MeterSphere UI测试模块的功能设计

MeterSphere选择Selenium作为UI自动化框架后,基于Selenium技术栈的痛点,进行了一系列的优化。具体的工作包括:

■ 使用元素库来管理元素;

■ 内置了对每一种操作的显示等待,精准控制每一次元素查找,使测试用例的成功率大幅提升。而这种提升可能是成功率从0到1的突破;

■ 基于Selenium-IDE官方插件抽象了原子指令。这些指令都是经过长期的实践检验得来的,因此不管是从元素操作、输入操作这样的基本指令,还是数据提取、断言、流程控制这样的高级指令,都能在MeterSphere UI测试模块的第一版实现支持,并且能够广泛覆盖各种场景用例;

■ 在原子指令的基础上对指令的执行过程做了精准的控制,例如异常抛出、检测等待等。

除Selenium外,MeterSphere UI测试模版有添加其他UI自动化框架的可能性,因为一种解决方案通常不能覆盖所有的问题。我们给扩展提供接口,方便以后可以在特定的、有更多限制条件的场景下使用其他的UI自动化框架。

未来,MeterSphere项目组会持续优化迭代UI测试模块,解决更多用户在UI自动化测试方面所面临的痛点,加速高质量的软件交付。

直播回放

目前,UI测试功能已经在MeterSphere v1.20 LTS版本上线。对于想要更深入了解MeterSphere UI自动化测试技术选型、功能界面及未来规划的同学,可以观看于5月18日进行的《MeterSphere开源持续测试平台UI测试功能模块设计与实现》主题直播。

在本期直播中,MeterSphere⾼级研发⼯程师张⼤海及MeterSphere产品经理⻩莹莹为大家介绍了UI测试模块技术选型的过程,并进行了现场功能演示。

相关推荐

测评丨DeepSeek-V4.1-Flash-1017企业私有化部署实测报告

1Panel AI一体机(方案六)服务器版实测数据汇总。

FIT2CLOUD飞致云的博客 1

支持千问安全围栏模型,1Panel AI网关v1.6.0版本发布

新增上游账号多API Key、同一请求模型多映射、OpenAI兼容图像编辑接口、实时用户活动卡片与版本更新通知。

FIT2CLOUD飞致云的博客 278

飞致云开源社区月度动态报告(2026年10月)

为数智经济时代创造好软件。

FIT2CLOUD飞致云的博客 109

新增语音API与模型管理功能,1Panel AI网关v1.5.0版本发布

上游账号管理支持多种协议类型与错误历史查看。

FIT2CLOUD飞致云的博客 446

持续提升系统安全性与用户体验,JumpServer堡垒机v4.10.20 LTS版本发布

欢迎广大用户升级至新版本。

FIT2CLOUD飞致云的博客 248

安全漏洞和已知问题修复,MaxKB开源企业级智能体平台v2.10.8 LTS版本发布

欢迎升级至新版本MaxKB。

FIT2CLOUD飞致云的博客 190

支持SMB远程文件数据源,查询组件支持多条件搜索,DataEase开源BI工具v3.2.0版本发布

透视表条件样式支持指定范围,汇总表支持图片链接渲染与放大预览。

FIT2CLOUD飞致云的博客 80

离线安装方式上线,支持Token Plan,1Panel AI网关v1.4.0版本发布

进一步提升AI网关部署的灵活性与日常运维体验。

FIT2CLOUD飞致云的博客 185

KoKo、Tinker组件重构,会话录像支持批量下载,JumpServer开源堡垒机v5.1.0版本发布

命令过滤规则支持AI辅助起草

FIT2CLOUD飞致云的博客 180

修复多个安全漏洞,MaxKB开源企业级智能体平台v2.10.7 LTS版本发布

欢迎升级至新版本MaxKB。

FIT2CLOUD飞致云的博客 172

学习笔记丨MaxKB PPT/PDF文档整页转图工作流知识库方案

解决复杂图文文档知识入库难题。

FIT2CLOUD飞致云的博客 294

飞致云开源社区月度动态报告(2026年9月)

为数智经济时代创造好软件。

FIT2CLOUD飞致云的博客 242

1Panel AI网关智能路由新增支持Jev模式

面向多个自定义业务目标进行语义决策。

FIT2CLOUD飞致云的博客 295

电子表格支持嵌入集成,支持GaussDB数据源与StarRocks计算引擎,DataEase开源BI工具v3.1.0版本发布

新增箱线图图表类型,修复7项安全漏洞。

FIT2CLOUD飞致云的博客 448

操作教程|通过1Panel应用商店快速安装Laya

Laye开源模型已上架至1Panel应用商店。

FIT2CLOUD飞致云的博客 209

修复安全漏洞,支持箱线图与汇总表合并单元格,DataEase开源BI工具v2.10.27 LTS版本发布

公共链接支持独立访客权限控制,数据填报与定时报告功能增强。

FIT2CLOUD飞致云的博客 382

强化安全性,Text-to-SQL智能选表升级,SQLBot开源智能问数系统v1.10.2版本发布

强化账号安全初始化机制,新增泰语支持。

FIT2CLOUD飞致云的博客 435

实战丨飞致云面向自身销售场景打造专属CRM Skills

自然语言驱动CRM智能查询、创建、更新、转化、链路追踪与漏斗分析。

FIT2CLOUD飞致云的博客 235

跨越新高度:JumpServer V5 来了!

统一工作台,拥抱AI新时代!

FIT2CLOUD飞致云的博客 112

测评|双卡RTX Pro 5000 Blackwell+Qwen3.8-Flash-Next:WorkBuddy办公场景实测

业务场景一手测试数据解读。

FIT2CLOUD飞致云的博客 281

支持多种登录认证方式、支持MFA与重排模型,1Panel AI网关功能上新

新增支持为上游账号配置代理和更多实用功能。

FIT2CLOUD飞致云的博客 123

案例研究|中国土木构建“财小问”智能体,提升财务管理效率

MaxKB助力财务部门从重复劳动迈向智能决策。

FIT2CLOUD飞致云的博客 96

联合方案丨MaxKB+DataEase实现智能跨库问数

通过自然语言提问,在权限范围内获取一站式的可视化数据以及数据洞察结论。

FIT2CLOUD飞致云的博客 219

GPU监控支持华为昇腾设备,防火墙管理焕新,虚拟机管理下放至专业版,1Panel v2.3.0版本发布

持续完善1Panel在AI模型部署与硬件适配方面的能力。

FIT2CLOUD飞致云的博客 253

免费AI网关测评:LiteLLM、New API和1Panel AI网关

为企业运维团队、AI业务团队提供选型参考。

FIT2CLOUD飞致云的博客 287

告别积分焦虑!WorkBuddy+Qwen3.8-Flash-Next本地部署,实现AI办公自由

把算力自由握在自己手里。

FIT2CLOUD飞致云的博客 417

工作流支持默认模型设置,MaxKB开源企业级智能体平台v2.10.6 LTS版本发布

腾讯混元、腾讯云模型供应商合并为新“腾讯云”供应商。

FIT2CLOUD飞致云的博客 344

1Panel AI网关现已开放,10人及以下团队免费使用

助力小团队低成本落地AI规模化应用。

FIT2CLOUD飞致云的博客 379

算力与带宽的博弈:双GB10算力节点部署DeepSeek-V4-Flash实测

用对场景,才算物尽其用。

FIT2CLOUD飞致云的博客 366

飞致云开源社区月度动态报告(2026年8月)

为数智经济时代创造好软件。

FIT2CLOUD飞致云的博客 195
上一篇: 产品解读丨MeterSphere开源持续测试平台助力企业测试平台化建设
下一篇: 操作教程|快速上手DataEase透视表制作
FIT2CLOUD飞致云
FIT2CLOUD飞致云 企业官方账号 企业官方账号
博客等级 码龄7年 3193粉丝 739原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值