Geb 开源项目指南
gebVery Groovy Browser Automation项目地址:https://gitcode.com/gh_mirrors/ge/geb
项目介绍
Geb 是一个基于 Groovy 的现代化自动化浏览器交互库,它结合了页面对象模式的力量和 WebDriver 的灵活性,提供了一种优雅且可读性高的方式来编写浏览器自动化脚本。Geb 提供了一个高层次的API,使得测试浏览器交互、原型设计和爬虫编写变得简单而直观。它鼓励一种结构化的方法来组织测试,促进了代码的重用和维护。
项目快速启动
安装前提
确保已安装 Java Development Kit (JDK) 和最新版本的 Selenium WebDriver。
添加依赖
如果你是 Gradle 用户,在你的 build.gradle
文件中添加以下依赖:
dependencies {
testImplementation 'org.geb:geb-core:latest.version'
testImplementation 'org.seleniumhq.selenium:selenium-chrome-driver:latest.version' // 或者其他需要的浏览器驱动
}
替换 latest.version
为实际发布的最新版本号。
编写第一个 Geb 测试
创建一个名为 ExampleSpec.groovy
的文件,并编写以下示例代码:
import geb.spider.Spider
import geb.waiting.WaitingDriverFactory
import org.openqa.selenium.chrome.ChromeDriverService
ChromeDriverService.create("path/to/chromedriver", logFile: "/dev/null").start()
driverFactory = new WaitingDriverFactory()
class ExampleSpider extends Spider {
static content = {
welcomeText { $('h1').text() }
}
void visit(String url) {
go url
assert welcomeText == "欢迎来到Geb的世界!"
}
}
new ExampleSpider().run("http://example.geb.info/")
这段代码定义了一个简单的蜘蛛,访问给定 URL 并验证页面上的欢迎文本。
运行测试
在命令行中,导航到项目根目录并运行你的 Gradle 任务:
./gradlew test
或者如果是 Windows 系统:
gradlew.bat test
应用案例和最佳实践
在 Geb 中,利用页面对象模型(Page Object Model)是最佳实践之一。这允许你将页面逻辑与测试逻辑分离,增加代码的可读性和可维护性。例如,为网站主页创建一个页面类,然后在测试中使用该类方法来交互。
class HomePage {
static at = { title == '主页标题' }
static content = {
loginButton(to: LoginPage) { $('#login') }
}
}
class LoginPage {
static at = { title == '登录页标题' }
static content = {
usernameInput { $('input[name="username"]') }
passwordInput { $('input[name="password"]') }
submitButton { $('button[type="submit"]') }
}
void loginAs(String username, String password) {
usernameInput.value(username)
passwordInput.value(password)
submitButton.click()
}
}
测试时,你可以这样使用这些页面对象:
def homePage = to HomePage
homePage.loginButton.click()
def loginPage = to LoginPage
loginPage.loginAs('user', 'pass')
典型生态项目
Geb不仅适用于标准的Web自动化测试,也广泛应用于集成测试、Web应用原型开发以及数据抓取场景。与Grails框架的紧密结合让它成为构建Groovy Web应用测试套件的理想选择。此外,Geb也常被用于配合Spring Boot应用程序进行端到端测试,通过组合Spring的测试支持和Geb的强大功能,以实现高度自动化的测试流程。
请注意,上述依赖和代码示例中的 latest.version
需要替换成实际的版本号,具体版本可以在Geb的GitHub发布页面或Maven仓库中找到。
gebVery Groovy Browser Automation项目地址:https://gitcode.com/gh_mirrors/ge/geb