WebdriverIO 与 Selenium Webdriver(Java 方法)

WebdriverIO Vs Selenium Webdriver (Java Approach)

关于 Java WebdriverIO 与 Selenium 的任何反馈?我进退两难,想解开这个迷惑。

我花了几天时间学习WebdriverIO,也做了一些实践,但得出的结论是它还不够成熟。调试真的是一个挑战。

WebdriverIO is a JavaScript / nodejs implementation of the (Selenium 2.0) WebDriver API - one of many (Selendroid, Protractor, etc.) As the specification 说:

WebDriver is a remote control interface that enables introspection and control of user agents. It provides a platform- and language-neutral wire protocol as a way for out-of-process programs to remotely instruct the behaviour of web browsers.

如果您使用 Java,您将使用 Java implementation of WebDriver。选择哪种语言,选择哪种实现,取决于您、您的技能以及您团队的技能。

虽然我非常怀疑 WebdriverIO 是 "not mature enough"。 WebDriver 是一个很好的规范,有许多强大的实现,但它经常被误用。当然,就新手而言,很大一部分 "random" 失败是他们的测试代码中完全可以避免的竞争条件。

所以我们使用 Java - Selenium、Serenity、JBehave 测试框架,然后是 Javascript WebdriverIO、Mocha 和 Yodda。

我认为 Java 方法更容易理解和调试。更容易理解,因为网站测试大多是连续的,你从一个页面导航到另一个页面,点击一个按钮,然后填写一个表格。它使您免于 运行 使用 JS 替代方案的任何异步问题。调试非常好,因为你有 类 和所有内容的固定结构。

第二个项目在后端使用了NodeJS,因此集成测试框架更加容易。测试框架成为 deployment/development 过程的一部分。