在Java中使用Selenium的工作流程是什么?

时间:2011-09-19 13:27:07

标签: java selenium junit

我对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?

3 个答案:

答案 0 :(得分:3)

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

IDE存在一些缺点,使其无法用于运行Selenium测试。我记得以下几点:

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

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

答案 1 :(得分:2)

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

干杯 斯蒂芬

答案 2 :(得分:1)

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

如果要生成HTML测试用例, Selenium IDE 非常有用。

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

有关此内容的明确说明,请参阅SeleniumHQ home page。它有一节“硒的哪一部分适合我?”,它回答了你的问题。