【问题标题】:Java / JUnit and Selenium RC - is there a wrapper library?Java / JUnit 和 Selenium RC - 是否有包装库?
【发布时间】:2011-04-20 16:14:13
【问题描述】:

我使用 JUnit 和 Selenium (1) 编写自动化集成测试。到目前为止,我已经在几个项目中使用过它。

我发现 Selenium API 太低级了,最终编写了通用的“包装器”代码来处理以下事情:

  • 检查表单的字段是否与单击某些“保存”按钮之前相同
  • 在测试之间共享 selenium 实例
  • 检查浏览器未显示堆栈跟踪
  • 等待元素出现(来自 AJAX 调用)

这是编写您自己的测试工具不可避免的一部分吗?或者在某个地方有一个包装库/我应该费心去创建一个吗?

【问题讨论】:

    标签: selenium junit integration-testing


    【解决方案1】:

    我个人认为 Selenium 2 是关于浏览器自动化框架的正确抽象级别。我同意你的观点,有一些烦人的事情,比如处理等待 ajax 调用,这可能会在框架中提供更多支持,但在 Selenium 2 中,有一个支持包可能会包含这些功能,如果包含它们是正确的。

    在我看来,您提到的其余几点就像是您不希望在核心框架中出现的项目特定功能。您可以轻松推出适合您类型项目的自己的框架(并且您应该),或者您可以在互联网上搜索包含您也发现有用和调整的东西的项目。例如,我的测试套件基于此:http://code.google.com/p/design-of-selenium-tests-for-asp-net/,但在 selenium 之上构建了更多更高级别的框架(一些超高级),您可以通过搜索(http://code.google.com/hosting/search?q=selenium&projectsearch=Search+projects)找到这些框架。

    所以是的,我认为这是不可避免的,但它不应该花费你那么多工作。

    【讨论】:

    • 公平点,感谢您的回答。将看看 Selenium 2,应该很快就会退出测试版。
    • Selenium 2 b3 相当稳定,所以我建议你试一试。
    【解决方案2】:

    您可以使用页面对象模式为应用程序驱动程序创建 DSL 和 windowlicker(使用 Selenium 2 的 Java GUI 测试框架)来实现。

    更多理论和实践技术见:

    http://www.wakaleo.com/blog/279-selenium-2web-driver-the-land-where-page-objects-are-king

    http://www.slideshare.net/alimenkou/dsl-page-object-and-selenium-a-way-to-reliable-functional-tests/

    http://www.growing-object-oriented-software.com/

    Groove 开发者可以使用 Tellurium 自动化测试框架:

    http://code.google.com/p/aost/

    Tellurium vs Selenium : Compare

    【讨论】:

      【解决方案3】:

      这些天我会使用 FluentLenium,它涵盖了我最初要求的很多内容:https://github.com/FluentLenium/FluentLenium

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多