Geb入门

时间:2016-06-21 09:00:22

标签: groovy spock geb

我是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();

我的问题是:

  1. 项目的结构是什么?
  2. 如何编写setup(),即浏览器实例化和teardown(),即Groovy中的浏览器实例化和退出方法?
  3. 如何使用Spock运行测试?
  4. 修改 这是我从https://github.com/geb/geb-example-gradle

    下载的一个示例项目的结构

    在这里我们有setup()teardown()方法,它初始化驱动程序并退出浏览器?基本上是一个BaseClass,它有所有初始化和其他类扩展它吗?

    enter image description here

1 个答案:

答案 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()为每个类/规范运行一次。

希望这有帮助。