webdriverIO 框架迁移到 Playwright

问题描述 投票:0回答:2

我正在尝试将 webdriverIO 脚本转换为剧作家脚本。两者都是用 JavaScript 编写的。我想知道大家有没有转换过这种类型的项目,有没有遇到过转换项目?

我已经开始手动翻译剧作家。如果可能的话,我正在寻找一种快速的方法

javascript converters playwright webdriver-io testautomationfx
2个回答
2
投票

不也是。

不 - 至少我不知道有什么类似的东西可以自动为你转换它。

是的 - 您可以通过正确的策略

reuse
编写大量代码。

我是谁? - 我最近成功地将大型(5000+测试)框架从 Protractor 迁移到了 playwright。

以下是我的经验教训:

语言:

这是最重要的。只要是用 JavaScript 或 TypeScript 实现的新旧框架,我们基本上都在同一个生态系统中。

NodeJS:

只要新旧框架都存在于nodejs生态系统中,所有使用的外部节点模块大部分都可以按原样重复使用。

测试脚本:

只要您在测试脚本中使用任何标准测试框架(Mocha/Jasmine/Jest),您几乎就可以使用它

as is
- 如果您仅在脚本中调用页面对象方法,则没有变化,因此您的实际代码被隐藏和封装在你的页面对象中,它应该是这样的。

对象定位器(CSS/Xpath):

无论您使用哪种框架/库/语言/工具,它们都是相同的,并且可以按原样使用,因为它们是独立的。

页面对象方法:

这是可能发生大多数更改的地方,如果您在库函数上实现了自定义包装函数以隐藏实现细节,那么甚至可以在一定程度上避免这种情况。

实用程序/支持功能

这又取决于如何优雅和干净地在多个层中抽象出代码,以最大限度地减少最低层的更改,而不触及任何更高层。

测试数据:

同样,通过正确的策略,它还可以以 Json/xml/csv/text 数据的形式与框架完全隔离,并可以根据需要输入测试脚本。只要正确实现,大部分都可以按原样重复使用。

配置:

这不是一件大事,因为它是一次性的,不需要更改太多代码。

这样做的关键是 - 从一开始就使用模块化方法设计你的框架,并以多层抽象的方式将其分成多个层,这样每个组件/类只是彼此“松散耦合”,以便任何部分无需 affecting 整个系统即可轻松更换/更新。

希望有帮助。


0
投票

检查

https://playwright.dev/docs/protractor

,因为它更接近wdio。

© www.soinside.com 2019 - 2024. All rights reserved.