我是Geb和Groovy的新手,但我对Selenium 2.0 Automation框架有很好的经验。
由于一些要求,我需要转移到Geb.框架应该有 Gradle作为构建工具,Spock运行测试,Groovy作为脚本语言和Geb。
我去Geb's official website看了这段代码
import geb.Browser
Browser.drive {
go "http://myapp.com/login"
assert $("h1").text() == "Please Login"
$("form.login").with {
username = "admin"
password = "password"
login().click()
}
assert $("h1").text() == "Admin Section"
}
但运行它不会打开浏览器。我们在Java中定义浏览器实例化的地方:driver = new FirefoxDriver();
我的问题是:
setup()
,即浏览器实例化和teardown()
,即Groovy中的浏览器实例化和退出方法?修改 这是我从https://github.com/geb/geb-example-gradle
下载的一个示例项目的结构在这里我们有setup()
和teardown()
方法,它初始化驱动程序并退出浏览器?基本上是一个BaseClass
,它有所有初始化和其他类扩展它吗?
答案 0 :(得分:3)
当我学习Geb时,我发现这个示例代码非常有用。它由Geb推出,并与Gradle集成,还使用Chrome和Firefox网络驱动程序,以及PhantomJS进行无头操作:
https://github.com/geb/geb-example-gradle
我将以稍微不同的顺序回答您的问题,这有望提供帮助。
问题1.项目结构相当开放,因为它是使用Gradle构建的,它允许许多选项。在链接的示例中,有一个src/test
结构,您可以使用正常的包结构。
问题3.您不必为Spock运行Geb做任何事情,而是使用某些Spock机制编写测试,例如setup:
,when:
,块等。您实际上使用gradle命令运行测试,如上例所示。
问题2.由于这些测试与Spock样式测试一起使用,您可以使用典型的设置和拆卸方法,它们是:setup()
和cleanup()
,每次测试运行一次,{ {1}}和setupSpec()
为每个类/规范运行一次。
希望这有帮助。