【发布时间】:2011-05-10 14:05:53
【问题描述】:
我有一个使用 Grails 编写的相当复杂的 Web 应用程序。我正在尝试建立一个功能测试框架,最初使用 Selenium,但遇到了两个问题。
我希望测试的部分页面涉及使用 jstree 显示的树状数据结构。这里的问题是我希望模拟的动作——用户点击一个节点以显示其子节点——似乎是通过点击一个 div 中的特定坐标触发的,这证明很难测试。我已经设法通过使用 Selenium 的 executeScript() 方法直接传递给浏览器的 Javascript 打开这个节点来解决这个问题。
webapp 大量使用文件上传,这是我绝对需要测试的。使用 Selenium 提交文件上传没有直接的方法。
解决这个问题的最佳方法是什么?我正在考虑尝试 Tellurium(但从我的阅读中并不清楚文件上传是否有效)或 iMacros(假设浏览器扩展可以更好地处理文件上传)。这不是我所处的罕见情况;有人可以提出更好的选择吗?
【问题讨论】:
-
我们使用
functional-test插件,只是模拟网络请求,不涉及浏览器。它可能会简化一些事情。 -
如果能够使用 HTMLUnit 进行测试肯定会很好。但不幸的是,我们发现很难在不启动浏览器的情况下测试一些丰富的 UI 内容,我们真的希望将所有测试都放在一个框架下。
-
它与集成测试没有太大区别。我相信你确实有 Grails 单元和集成测试,所以这里几乎没有基础设施开销。只是清楚地分开,什么用于什么。当然,
functional-test绝不会让你测试浏览器端逻辑。
标签: testing grails automated-tests functional-testing