2

我发现对于 java 自动化测试,更好的方法是使用 Cruise Control(java)、JUNIT(java 测试框架)和 Watij。请有任何进一步的建议。任何成功集成这些工具的人,以及为此发现的限制。

问候

4

3 回答 3

2

我们通常尝试在 3 个级别上测试应用程序:

  • 使用 JUnit 进行单元测试。为此,我们遵循依赖注入模式并在必要时使用模拟对象(基于 JMock 框架)。
  • 集成测试。这些也基于 JUnit,但不使用模拟对象并测试应用程序的不同层,例如写入数据库。出于基本数据的目的,我们遵循Object Mother模式。
  • 验收测试,为此我们使用 Selenum。

对于测试自动化和持续集成,我们的项目是使用 Maven 和 Hudson 构建的。我们目前正在研究的改进之一是使用 Groovy 而不是 Java 进行测试。

我们必须解决的一些问题:在测试用例设置中创建基本数据(基于对象母模式),测试套件的组织,因为所有测试都需要大量时间来运行,处理测试代码中的重复等等摆弄 Maven 和 Selenuim,但从长远来看绝对值得。

于 2009-06-04T13:31:07.870 回答
1

我的一位同事是Watir的忠实粉丝,我猜想这与 Watij 相似。我喜欢Selenium,最近一直在考虑和Tellurium一起玩。

在任何情况下,将其中任何一个与像 CruiseControl 或Hudson(我最喜欢的)这样的持续集成引擎结合在一起是处理 Web 应用程序功能测试的好方法。JUnit 非常适合单元测试甚至集成测试。

功能性 Web 应用程序测试的限制:

虽然您可以告诉用户单击“左侧菜单中的第一项”,但告诉计算机这样做并不容易。Web 应用程序测试框架不能看着屏幕并轻易辨别页面上的哪些元素构成了菜单。他们需要更多关于与什么元素交互的细节,而这反过来又需要一些关于如何构建 HTML 页面的知识。随着页面的变化,测试也会发生变化。

当页面某个部分的每一个微小变化都会破坏页面其他不相关部分的测试,这些测试被称为“脆弱”。确保测试更稳定需要一些经验,就像在常规单元测试中一样。例如,使用元素 ID 或名称来引用页面上的元素,而不是它们的完整 XPath(可能很长、不可读并且易碎)或它们的文本内容(如果它可能会更改)。

于 2009-06-04T13:28:40.730 回答
0

我们喜欢使用 WATIR 对 Web 应用程序进行功能测试。它是 Ruby 的浏览器自动化包。易于学习,编写了许多测试用例后我们没有遇到任何障碍。

于 2009-06-04T13:21:20.200 回答