Geb 和 Spock 测试框架有什么区别

What is the difference between Geb and Spock testing frameworks

我是软件开发领域的新手,想扩展我在自动化测试方面的知识。我阅读了很多有关 Geb 和 Spock 测试框架的文章,但没有得出结论,它们的用途是什么。

我说得对吗:

Geb 用于页面对象(静态覆盖 UI 页面选择器、元素等)

Spock 用于编写测试命令(Cases/Steps 用于测试)(也能够 运行 API 测试,模拟数据,参数化端点,值等。 )

--> 它们还有哪些区别?我已经检查了两个文档,但无法理解。

我会欣赏每一个实用的建议或示例,以及两者之间的差异,因为我涵盖了很多东西,但只有理论示例,但我没有掌握主要内容。

提前致谢!

Geb 是一个 browser/web 自动化解决方案。您可以使用它来测试网页的功能。 Geb 可以自动启动网页、填写表单字段并单击网页上的按钮。来自官网:

"It can be used for scripting, scraping and general automation — or equally as a functional/web/acceptance testing solution via integration with testing frameworks such as Spock, JUnit & TestNG."

Geb 的优势在于网络自动化。

Spock 的优点在于它是测试和规范框架。

例子

您可以Geb查看以下内容:

  • 当打开 mywebsite.com/login 并输入错误的用户名或密码时,应显示一条错误消息,例如 div.

  • 当打开 mywebsite.com/submitData 时,填写商品名称和价格并单击提交按钮,预计会显示一条消息 "Thank you, the total number of items is now 5"

GEB 建立在 WebDriver 库之上,并且兼容所有使用 WebDriver 的浏览器和驱动程序。

最常用的实现 UI 自动化的方法是通过页面对象模型设计模式的实现,Geb 通过在其 'Page' [=50= 中实现所有样板代码来支持页面对象模型].自动化框架中的自定义页面需要扩展此 'Page' class 才能访问现成的函数和闭包。 一些额外的要点:

  • 它使用 jQuery-ish 导航器 API 来识别页面上的元素。

  • 有现成的 'js' 对象,可让您在页面上执行 JavaScript。

  • 有些闭包可以让您切换到另一个 Window/iFrame/Alert 网页
  • 下拉菜单、单选按钮、文件上传、复选框等的简化处理
  • 引入 'Interact' 构建和执行用户操作的块(通过利用 Selenium WebDriver API 的 Action class)
  • geb.config 文件允许开发人员添加对多种环境、驱动程序、报告、等待等的支持。

The Book of Geb

中阅读有关 Geb 的更多信息

另一方面,SPOCK 是一个 BDD 测试和规范框架,其灵感来自 JUnit、jMock、RSpec、Groovy、Scala、Vulcans 等框架

SPOCK 与 Geb 高度兼容并提供 'GebReportingSpec' class 需要通过测试 classes 进行扩展以建立与 Geb 的兼容性