一个人到底要走多少弯路,才能成为一名合格的测试开发工程师?
Cypress又又又更新啦!在最新的10.8.0版本中,支持了对Safari浏览器进行测试。(买了书的同学们,公众号回复你的微信号,拉你到Cypress中国群)。
Cypress自从面世以来,一直在攻城拔寨,当前,在面试时,国内外优秀的互联网公司都已把掌握Cypress框架算做一项加分技能。 但在市场份额在逐渐扩大的同时,大家对Cypress的期望程度也越来越高,比如,最受诟病的两个问题是:
从第一版仅支持Chromium内核的浏览器,到现在支持主流的Chrome,Edge,Firefox, Electron等。Cypress支持的浏览器越来越多,但一直没支持Safari。
与此同时,Safari的市场份额一路攀升至第二(市场份额在世界范围为20%左右。第一是Chrome),于是,随着大家要求支持Safari的呼声越来越高。在最新的Cypress 10.8.0版本里, Cypress终于把Safari浏览器纳入里测试范围。
需知:Cypress并不是直接支持Safari浏览器,而是通过WebKit来实现对Safari对支持的。
在当前10.8.0版本里,对WebKit的支持,仍是一个测试版。所以当你要启用Safari测试时,你需要先行进行安装和配置。
安装
在项目根目录下执行:
npm install --save-dev playwright-webkit
配置
在cypress.config.js里添加如下配置:
"experimentalWebKitSupport": true,
然后,在测试时,选择"WebKit"作为浏览器。
选择你要执行的测试用例执行完即可。
Cypress通过WebKit支持了Safari浏览器测试,可以说,让大家对Cypress的接受度又增加了一大截。但是因为这个版本对Safari的支持是测试版本,所以才存在很多问题, 比如:
1. cy.origin() 和 cy.session() 尚不支持。
2. cy.intercept() 的 forceNetworkError 选项被禁用。
3. 在 WebKit 中使用带有视频录制的实验性SingleTabRunMode 时,仅录制第一个规范的视频。
4. cy.type() 行为的一些差异:
textInput 事件缺少数据属性
beforeinput 事件缺少 inputType 属性
input[type=number] 上的 cy.type('{uparrow}') 和 cy.type('{downarrow}') 不会四舍五入到指定的最近步长
另外,笔者在测试中发现,Webkit的支持,目前仅支持默认的文件结构,暂不支持自定义文件结构,运行时会报这个错误:
如果你的测试框架是根据我的图书自定义过的,那么可暂时暂停使用这个功能,等Cypress官方修复后再行使用(https://github.com/cypress-io/cypress/issues/23865)。
Cypress有很多奇淫巧技, 我已经总结超过百篇
别走开,下一篇更精彩!