UI自动化框架Selenium和Cypress对比

2023-02-07 1,245 0

多方面对比

序号
功能/特征
Selenium
Cypress
权重(%)
1
安装设置
中等
需要对应的client和环境配置,引入依赖包
容易
3
2
语言
多语言(Java、Python等)
JavaScript
8
3
CI
支持
支持
8
4
测试报告
可自定义添加,如Allure
可自定义添加,如Allure
5
5
上手难易
容易
容易
5
6
是否需要引入额外测试框架
是,PyTest、TestNG、RobotFramework等
5
7
浏览器支持
Chrome、Firefox、Edge、Safari、Internet Explorer等
Chrome、Firefox、Edge、Electron、Safari(据说最新10.8.0版本支持safari,需要通过webkit的方式)
5
8
稳定性
中等
可能会存在webdriver版本兼容性问题以及元素定位不稳定问题
较高
5
9
调试
基于IDE
调试方便
DashBoard面板记录了测试过程中浏览器发出的每一次请求、模拟用户的每一次动作行为如输入、点击等、以及断言的结果、包括此次的测试结果,都会形成一个dom快照保存下来,方便用户查看、调试(交互、步骤查看、定位较为方便),也可以支持数据mock,请求拦截
5
10
运行速度
相对较慢
3
11
录制回放
支持
需要代码实现
默认支持
测试的每一步都有对应的截图,在运行测试的时候,cypress会获取快照,记录了测试执行过程的每一步细节,全程录屏
5
12
运行时截图
支持
需要代码实现
默认支持
3
13
多浏览器实例支持
支持
不支持
3
14
多tab
支持
不支持
3
15
并行测试
支持
支持
3
16
自动等待
不支持
支持
3
17
网络流量控制
不支持
支持
可以 Mock 服务器返回的结果,无须依赖后端服务器,即可实现模拟网络请求
2
18
实时重载
不支持
支持
当测试代码修改保存后,Cypress 会自动加载改动地方,并重新运行测试
3
19
视觉测试
有局限性
支持
5
20
跨域访问
支持
会出现报错
需要修改配置(https://cloud.tencent.com/developer/article/1989199,尚未尝试)
3
21
相关文档
5
22
市场成熟度
高(2004年开始)
市场占比约35% (2021)
相对较低(2015年开始)
市场占比约5%(2021)
Adobe, 迪士尼,AutoDesk等
3
23
APP端测试
相同框架引入appium可支持
不支持
8??

优缺点总结:

Selenium
Cypress
优点
  1. 是当前主流的成熟Web UI自动化工具
  2. 支持多种语言,适用于多种自动化测试框架
  3. 框架可以联通appium进行app端自动化测试(如后期有app测试需求)
  1. 设计架构新,运行速度快且稳定
  2. 方便录屏、截图、调试
  3. 不需要额外的自动化测试框架
  4. 安装方便,入门容易
缺点
  1. 需要额外的测试框架来实现自动化测试
  2. 设置相对较为复杂
  3. 测试图像方面有局限性
  4. 元素定位不稳定
  1. 需要使用JavaScript,有一定的学习成本
  2. 浏览器支持限制
  3. 不支持app端测试
  4. Cypress提供的所有特性都不是免费的?
  5. Cypress版本更新带来的迁移成本?(更新至10.x版本有一定迁移成本)?

总结:

Cypress是一个新兴且不断迭代的工具,而Selenium是自动化测试领域的成熟工具。
Cypress仅支持js,优点是快和稳定性、可用性以及一些细节的支持。 Selenium支持多种语言,成熟,但是配置相对复杂,稳定和运行速度和在一些细节中支持不如Cypress。
如果精通JavaScript或者追求新技术的探索,并且对跨浏览器测试要求不高,想要可以在本地主机上执行自动化测试的工具,那么可以选用Cypress。
如果希望在各种浏览器和操作系统上流畅运行,稳妥起见则可以使用Selenium搭配自动化测试框架。
待确认:
  1. 是否接受使用js?
  2. 是否需要对多种浏览器进行测试验证?(最新10.8.0版本支持safari,需要通过webkit的方式)
  3. 后期是否有app端测试?(如果有app端测试,建议使用selenium)
  4. 是否有需求频繁多次操作数据库?cypress是否支持?
  5. 以上的多方面对比打分项目是否是实际测试结果还是网络资源汇总?尚未见过selenium的demo,是否会安排?如何集成其他框架?(比如现有的测试平台是否可以快速集成?)
  6. 是否有实际测试项目使用经验(认为是大的加分项目)

 

相关文章

集群压测体系搭建-实时监控平台(2)
密码保护:Metersphere使用实践,优缺点分析
密码保护:MS自动化测试框架调研
记一次Nginx代理Mysql服务的经历
Jenkins中自动化创建Jira任务
集群压测体系搭建-Jmeter集群(1)
Index