2

我最近偶然发现了geb,它看起来是在我们的 Web 应用程序上执行集成测试的好方法。我们的平台都是基于 java 的,并且从阅读中

“Geb 通过与流行的测试框架(例如 ...JUnit、TestNG...)集成,为功能性 Web 测试提供一流的支持。”

我认为从 java 类执行测试会很容易(testng 测试?)。

我是 groovy 和 geb 的新手。

到目前为止,我已经在我的 pom 中包含了 geb-testng 和 groovy:

<dependency>
    <groupId>org.codehaus.geb</groupId>
    <artifactId>geb-testng</artifactId>
    <version>0.7.0</version>
</dependency>
<dependency>
    <groupId>org.codehaus.groovy</groupId>
    <artifactId>groovy</artifactId>
    <version>1.8.6</version>
</dependency>

...但是我找不到任何创建测试并从 java 类运行它的示例。

帮助表示赞赏。

4

3 回答 3

4

Geb 是为 Groovy 代码设计的,并且只能用于 Groovy 代码。这主要是由于其 API 的动态特性。您可以选择使用哪个测试框架(JUnit、TestNG、Spock 等)。由于 Geb 本身只是一个库,因此它也可以在没有测试框架的情况下使用,例如自动化与网站的交互。

如果您需要坚持使用 Java,则必须使用 Selenium2 之类的东西,这是 Geb 在幕后使用的东西。

于 2012-06-20T17:48:48.713 回答
1

我在搜索 Geb-TestNG 示例时偶然发现了这个问题。这对我有用:

import geb.testng.GebTest
import org.testng.annotations.Test


class GroovyYourTestClass extends GebTest {

    @Test
    void "should test something"() {
        to YourPageObject
        // ...
    }
}
于 2014-03-20T15:16:03.150 回答
0

如果您使用 Java,Geb 的最佳替代品是恕我直言 Selenide ( http://selenide.org )

快速入门指南中的示例:

@Test
public void userCanLoginByUsername() {
  open("/login");
  $(By.name("user.name")).setValue("johny");
  $("#submit").click();
  $(".loading_progress").should(disappear); // Waits until element disappears
  $("#username").shouldHave(text("Hello, Johny!")); // Waits until element gets text
}

它独立于您的测试框架,因此可以与例如 JUnit、TestNG、Cucumber、ScalaTest、JBehave 一起使用

于 2017-04-04T09:16:55.320 回答