我最近偶然发现了geb,这似乎是对我们的网络应用程序执行集成测试的好方法。我们的平台都是基于java的,并且可以阅读
“Geb通过提供一流的功能性网络测试支持 与流行的测试框架集成,例如... JUnit, TestNG的......“
我认为从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类运行它的例子。
帮助表示赞赏。
答案 0 :(得分:3)
Geb是为Groovy代码设计的,并且只能在其中使用。这主要是由于其API的动态特性。您可以选择的是要使用的测试框架(JUnit,TestNG,Spock等)。由于Geb本身只是一个库,它也可以在没有测试框架的情况下使用,例如自动化与网站的交互。
如果你需要坚持Java,你将不得不使用像Selenium2这样的东西,这是Geb在幕后使用的。
答案 1 :(得分:1)
我在搜索Geb-TestNG示例时遇到了这个问题。以下是对我有用的内容:
import geb.testng.GebTest
import org.testng.annotations.Test
class GroovyYourTestClass extends GebTest {
@Test
void "should test something"() {
to YourPageObject
// ...
}
}
答案 2 :(得分:0)
如果您正在使用Java,那么Geb的最佳替代方案是恕我直言(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