我正在尝试将 webdriverIO 脚本转换为剧作家脚本。两者都是用 JavaScript 编写的。我想知道大家有没有转换过这种类型的项目,有没有遇到过转换项目?
我已经开始手动翻译剧作家。如果可能的话,我正在寻找一种快速的方法
不也是。
不 - 至少我不知道有什么类似的东西可以自动为你转换它。
是的 - 您可以通过正确的策略
reuse
编写大量代码。
我是谁? - 我最近成功地将大型(5000+测试)框架从 Protractor 迁移到了 playwright。
以下是我的经验教训:
这是最重要的。只要是用 JavaScript 或 TypeScript 实现的新旧框架,我们基本上都在同一个生态系统中。
只要新旧框架都存在于nodejs生态系统中,所有使用的外部节点模块大部分都可以按原样重复使用。
只要您在测试脚本中使用任何标准测试框架(Mocha/Jasmine/Jest),您几乎就可以使用它
as is
- 如果您仅在脚本中调用页面对象方法,则没有变化,因此您的实际代码被隐藏和封装在你的页面对象中,它应该是这样的。
无论您使用哪种框架/库/语言/工具,它们都是相同的,并且可以按原样使用,因为它们是独立的。
这是可能发生大多数更改的地方,如果您在库函数上实现了自定义包装函数以隐藏实现细节,那么甚至可以在一定程度上避免这种情况。
这又取决于如何优雅和干净地在多个层中抽象出代码,以最大限度地减少最低层的更改,而不触及任何更高层。
同样,通过正确的策略,它还可以以 Json/xml/csv/text 数据的形式与框架完全隔离,并可以根据需要输入测试脚本。只要正确实现,大部分都可以按原样重复使用。
这不是一件大事,因为它是一次性的,不需要更改太多代码。
这样做的关键是 - 从一开始就使用模块化方法设计你的框架,并以多层抽象的方式将其分成多个层,这样每个组件/类只是彼此“松散耦合”,以便任何部分无需 affecting
整个系统即可轻松更换/更新。