我想运行模拟用户同时为 grails 应用程序修改某些数据的测试。
我可以使用任何插件/工具/机制来高效地执行此操作吗?它们不必特定于 grails。应该可以并行触发多个操作。
我更愿意在功能级别上运行测试(到目前为止,我正在使用 Selenium 进行其他测试)以从用户角度查看结果。当然,如果您还建议在集成级别运行并发修改测试,那么除了集成测试之外还可以这样做。
最佳答案
我最近为此使用了 Geb (http://grails.org/plugin/geb/)。它是 WebDriver 和 Selenium 等之上的一层。很容易编写一个 Grails 脚本来充当您应用程序中的用户,然后只需在不同的控制台上运行多个实例。 Geb 使用 jQuery 风格的语法在 DOM 中定位内容,这非常酷:
import geb.Browser
import geb.Configuration
includeTargets << grailsScript("_GrailsInit")
target(main: "Do stuff as fast as possible") {
Configuration cfg = new Configuration(baseUrl: "http://localhost:8080/your_app/")
Browser.drive(cfg) {
go "user/login"
$("#login form").with {
email = "someone@somewhere.com"
password = "secret"
_action_Login().click()
}
...
}
}
setDefaultTarget(main)
只需将您的脚本放在 scripts/YourScript.groovy 中,然后您就可以执行“Grails YourScript”来运行它。我通过全速运行其中的几个来追踪一些并发问题。您确实需要建立一个 war 并正确部署它,因为开发模式下的 Grails 非常慢并且很快就会耗尽 permgen 空间。
关于testing - 如何对 Grails 应用程序进行并发修改测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4162910/