2

问候,我们有一个包含大量 bean、JSP 等的项目。迫切需要在我们的环境中执行自动化测试(我们使用 Maven)。现在,我们可以轻松地为我们实现的各种安全实用程序编写数据库项目层的测试。但是 JSP 页面仍然未经测试。

我搜索了用于服务器端测试的实用程序,而 Cactus 似乎是最好的选择。但是,根据他们的更改列表,他们的最后一个版本是 1.8,并且是在两年多前发布的!

所以问题是 - 仙人掌发生了什么,它还在发展还是什么?雅加达仙人掌最近的替代品是什么(如果有的话)?

4

4 回答 4

4

我在最近的项目中使用了 Spring、JUnit 和 HttpClient 的组合并取得了一些成功。

Apache HttpClient提供了一个强大而灵活的 API,用于构建 http 请求并将其发送到您的应用程序中。它无法复制 Web 浏览器,例如通过运行客户端脚本,但是如果生成的 http 响应(标头、URI、正文)中有足够的内容,那么您可以使用此信息来遍历应用程序中的页面并验证行为。您可以发布表单、遵循重定向、处理 cookie 并将输入提供到您的应用程序中。

JUnit (junit.org) 驱动测试,使用 HttpClient 调用一系列页面,并且可以与应用程序一起部署,使用 ant/maven 独立运行,或在 IDE 中单独运行。

当然,Spring (springsource.org) 是可选的,因为您可能不会将它用于您的项目。我发现存根/模拟应用程序的某些部分很有用,这样我可以通过替换 DAO 以返回特定的数据值来隔离特定区域(例如前端控制器)到业务逻辑。它提供了一个出色的测试上下文框架和专门的 TestRunner,可以很好地连接到 JUnit(或 TestNG,如果您愿意)这样的测试框架。

于 2011-03-30T01:57:01.747 回答
3

Cactus 在 ejb2 时代是一个很好的服务器端测试框架,但它不再受支持。

您可以结合使用模拟测试(细粒度)和容器内测试(粗粒度)策略来完全测试您的应用程序。

模拟测试框架:MockitoJmockitEasyMock等。

集成测试框架(Java EE):Arquillian、 Embeddable API等。

我更喜欢MockitoArquillian进行服务器端测试。

于 2014-09-05T12:54:54.833 回答
2

阿奎利安怎么样?我没有使用它,它甚至还没有稳定的版本,但至少它正在积极开发中。

于 2011-03-27T21:11:18.540 回答
0

您可能想尝试硒。我发现这与 jBehave 是一个很好的组合。对这两个项目的支持越多,它们就越不会失效(如仙人掌)。

于 2013-12-16T17:03:45.120 回答