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