【问题标题】:What is the workflow for using Selenium in Java?在 Java 中使用 Selenium 的工作流程是什么?
【发布时间】:2011-11-20 06:20:57
【问题描述】:

我真的对 Selenium 网站感到困惑。起初他们不遗余力地解释 Selenium IDE,但它输出的是 HTML 测试用例。但是当您查看 Java 文档时,它使用的是纯 Java 的 WebDriver,并且您的 HTML 测试用例毫无用处。我从 Selenium IDE 中找到了一个导出到 JUnit 的功能,但它不使用 WebDriver api,它将它包装在 Selenium api 中,这甚至不起作用。我收到一次只能进行一个会话的错误。我只有一个测试,确保使用 netstat 我没有任何其他软件在端口上监听并断开 selenium 实例。它只是行不通。此外,测试用例扩展自已弃用的类。

您无法将测试用例从 Java 代码返回到 Selenium IDE,因此您可以在那时将 Selenium IDE 丢弃。

我将测试用例转换为纯 WebDriver 并让它工作。那么使用 selenium 和 JUnit 的推荐工作流程是什么?我应该忘记 Selenium IDE 和在浏览器中记录操作,而只用 Java 编写所有内容吗?或者是否仍然可以以某种方式使用 Selenium IDE?

【问题讨论】:

  • 我相信 Selenium IDE 适合非程序员。 WebDriver 是要走的路,因为程序化测试更加灵活。

标签: java selenium junit


【解决方案1】:

最近完成了一个使用 Selenium 2.0 的项目,我发现 Selenium IDE 仅适用于原型测试。

IDE 存在一些缺陷,无法用于运行 Selenium 测试。我可以回忆起以下内容:

  • 通常您希望在套件中运行测试。虽然 IDE 确实具有此功能,但我发现 IDE 缺少运行测试设置和拆除脚本的更重要的功能。这在 JUnit/TestNG 中实现起来是微不足道的,但在 HTML 中记录的脚本却相当痛苦。简而言之,在您使用单元测试库从 Java 运行测试之前,记录的测试是不可维护的。
  • 测试中的数据不能跨测试共享;您将需要在每个需要它的测试中复制数据。当测试以 HTML 等表示语言存储时,这是预期的。
  • 导出测试的默认格式不使用page-object 设计模式(这对于组织Selenium 测试非常有效)。我没有尝试为此创建自己的格式模板,但这只是让我确信涉及 WebDriver 和 JUnit/TestNG 的最佳测试是手工编写的。

使用 Selenium IDE 的最佳方式是(由功能测试人员)创建失败测试的记录,而不是直接将测试导出到您的测试套件中。您可以使用 IDE 记录初步测试,以便捕获测试的重要方面(断言/验证调用),然后在您的套件中重写它。

【讨论】:

  • 我很难选择哪个是正确的答案,因为每个人都有相同的答案。我最终选择了这个,因为它是最强大的。
【解决方案2】:

我使用 IDE 创建一个“工作流脚本”,将其转换为 java 代码。然后我用 Java 从头开始​​编写所有内容,但使用来自转换后的 IDE 脚本的信息。这将有所有的 ID 等等,但也有你计划“点击”的顺序,甚至它的某些部分可能会被立即复制。无论如何,它确实会加快速度,但如果您使用的是 webdriver,它会使事情变得更加复杂,而且我还没有移到最新版本。

干杯 斯蒂芬

【讨论】:

    【解决方案3】:

    关键是您可以使用其中任何一种,具体取决于您的目标。在您的情况下,WebDriver 听起来像是要走的路。

    如果您想生成 HTML 测试用例,Selenium IDE 很有用。

    Selenium WebDriver 对于用 Java(或其他语言)编写单元测试很有用。

    要从源头上清楚地表明这一点,请参阅SeleniumHQ home page。它有一个关于“Selenium 的哪个部分适合我?”的部分,它回答了您的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-07
      • 2020-09-25
      • 2017-09-01
      • 2020-03-08
      • 2011-07-13
      • 2014-09-20
      • 2014-08-18
      • 1970-01-01
      相关资源
      最近更新 更多