selenium与cypress优缺点调研 |
工具 | selenium | cypress |
安装配置 | 中等,需要对应的client和环境配置,引入依赖包 | 容易,直接下载安装包即可,自动安装 |
语言支持 | 多语言支持,Python、Java | 仅支持js |
上手难易 | 容易 | 相对容易,根据文档可以简单 |
稳定性 | 中等,可能会存在webdriver版本兼容性问题 | 较高,自带调试浏览器,与被测应用运行在同一浏览器 |
运行速度 | 基于http,c\s框架进行交互,较快 | 快,原因同上 |
录制回放 | 支持,selenium?IDE支持录制、回放,降低上手门槛 | 支持 |
运行时截图 | 支持 | 支持 |
多浏览器实例支持 | 支持 | 目前不支持 |
可调试性 | 基于IDE | 优,左边的DashBoard面板记录了测试过程中浏览器发出的每一次请求、模拟用户的每一次动作行为如输入、点击等、以及断言的结果、包括此次的测试结果,都会形成一个dom快照保存下来,方便用户查看、调试(交互、步骤查看、定位较为方便),也可以支持数据mock,请求拦截 |
异步处理 | 一般,需要自行判断和增加等待时间 | 优,自动等待元素加载完成,会主动监听页面的加载、请求结束等事件 |
编程方式 | 基于被测页面 | 基于方法和命令 |
相关资料 | 多 | 多,自带的doc也相对完善 |
使用推广程度 | 目前UI自动化使用范围最广的,04年开始 | 14年开始,从下载量、commit提交频率、star数来看,cypress的表现都不错 |
测试报告 | 有,可自定义添加 | 有,可自定义添加 |
CI的支持 | 支持 | 支持 |
移动设备适配 | 支持,可设置浏览器尺寸大小 | 支持,可设置浏览器尺寸大小 |
浏览器支持 | 基本都支持 | Chrome、Firefox |
结论 | cypress的优缺点:仅支持js,测试组内暂无使用,引入新语言到测试用例设计存在一定风险,优点是快和稳定性、可用性,以及一些细节的支持 selenium的优缺点:支持目前已有语言,成熟,缺点是环境配置,稳定和运行速度和在一些细节中支持不如cypress 综上:如果考虑支持的语言为最大权重,则selenium较优,如果可以通过输出学习文档,总结常用的一些命令和语句来克服语言的支持问题,则cypress较优 |