【问题标题】:Java test framework for Selenium RCSelenium RC 的 Java 测试框架
【发布时间】:2011-02-11 16:29:02
【问题描述】:

我将使用 Selenium RC 为网站重放一些测试。我想从 Java 测试框架中启动这些测试,以便我得到很好的报告,有多少测试失败了,等等。

我应该使用哪个 java 测试框架? JUnit 是用于此目的的首选框架吗?

【问题讨论】:

    标签: java junit selenium


    【解决方案1】:

    仅用于支持其中一个答案
    雅虎将selenium + testng 用于自动测试网页。

    Junit 与 Testng:
    Testng 可以有更多的控制,例如分组测试用例,并行运行,重试失败的测试用例,更灵活地注释测试用例。

    【讨论】:

    • 我最终使用了 JUnit。原因很简单:我开始用 JUnit 设置整个东西,现在我没时间尝试 testng :-(
    • 无论如何,JUnit 都很棒。玩得开心。
    【解决方案2】:

    以下是我的一些经验。

    JUnit 具有允许减少样板代码数量的“规则”。例如,一个规则可以在测试之前启动一个 servlet 容器并在测试之后停止它,创建和注入一个 Selenium 实例等等。这使得测试更加优雅。

    TestNG 支持组(及其依赖项)。这对于集成测试非常有用——例如,您可以在某些环境中关闭某些组。 JUnit 4.8 引入了可能类似的“类别”。

    Spring Test 有一个非常好的“测试执行侦听器”方法,可以“准备”您的测试实例。这有点类似于 JUnit 规则。 Spring Test 也与测试框架无关,也就是说,您的测试在 JUnit 或 TestNG 上看起来几乎相同。还有类似于 TestNG 组的“配置文件”。

    Here's 一个经过 Selenium 测试的 JSF 应用程序示例,基于 TestNG。也看看我的Hifaces20 Testing 包,也许你会发现一些有用的想法。

    【讨论】:

      【解决方案3】:

      我们将 Selenium 与 JUnit 结合使用。这种方法的美妙之处在于易于创建 JUnit 测试,因为我们将 Selenium 测试记录在 Selenium IDE 中,然后简单地将它们导出到 JUnit(尽管通常需要进行一些小的调整)。然后,您可以相当轻松地将它们集成到您的持续集成构建中,并设置一个工作以每小时运行一次或任何适合的方式运行它们。我喜欢 JUnit 方法的地方在于,我团队中的每个人都已经非常熟悉 JUnit,因此不需要学习曲线。

      我还建议您查看Selenium Grid,它允许您并行执行测试,从而让您在更短的时间内完成更多任务,尤其是如果您可以利用在多台机器上执行它们的优势。

      【讨论】:

      • 感谢您分享您的经验。我认为能够直接从 Selenium IDE 导出到 JUnit 测试是一个很大的优势。但让我们看看其他人的想法。
      【解决方案4】:

      我们为此目的使用了 JUnit,它运行良好。 Selenium 测试就像 JUnit 测试一样处理,并在 selenium 服务器上运行。

      尽管 Selenium 测试似乎更接近于集成测试,因此如果它更适合您的需求,您应该评估一次 testNG。 TestNG 提供了更多的配置控制。在我们的案例中,我们对 JUnit 的 Web 驱动程序和设置方法很满意,因此我们没有转向 TestNG。

      【讨论】:

      • 我正在进行功能测试,因此检查网站最重要的功能是否仍在工作。事实上,JUnit 最常用于类测试,所以我不确定是否应该使用 JUnit。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-21
      • 1970-01-01
      • 2012-03-06
      相关资源
      最近更新 更多