【问题标题】:What is the difference between Geb and Spock testing frameworksGeb 和 Spock 测试框架有什么区别
【发布时间】:2019-11-06 11:23:53
【问题描述】:

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

我说的对吗:

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

Spock 用于编写测试顺序(用于测试的案例/步骤)(也能够运行 API 测试、模拟数据、参数化端点、值等)

--> 他们还有什么不同?我已经检查了这两个文档,但无法理解。

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

提前谢谢你!

【问题讨论】:

  • Geb 是一个简化浏览器测试的框架。如果您在测试中不使用 Geb,则需要使用 Selenium 之类的东西。 Geb 与 Spock 很好地集成,正如您所说,这是一个完整的测试框架,用于单元/集成测试您的代码

标签: groovy automated-tests spock geb


【解决方案1】:

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

“它可以用于脚本、抓取和一般自动化——或者通过与 Spock、JUnit 和 TestNG 等测试框架的集成,同样作为功能/Web/验收测试解决方案。”

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

Spock 的关键在于它是测试和规范框架。

示例

您可以通过 Geb 进行以下检查:

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

  • 当打开 mywebsite.com/submitData,填写商品名称和价格并单击提交按钮时,会显示一条消息,如“谢谢,商品总数现在为 5”

【讨论】:

    【解决方案2】:

    GEB 建立在 WebDriver 库之上,兼容所有与 WebDriver 一起工作的浏览器和驱动程序。

    实现 UI 自动化的最常用方法是通过实现页面对象模型设计模式,Geb 通过在其“页面”类中实现所有样板代码来支持页面对象模型。自动化框架中的自定义页面需要扩展这个“页面”类,以便访问现成的函数和闭包。 一些额外的点:

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

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

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

    The Book of Geb了解更多关于 Geb 的信息

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

    SPOCK 与 Geb 高度兼容,并提供了一个 'GebReportingSpec' 类,测试类需要扩展该类以建立与 Geb 的兼容性

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-05
      • 1970-01-01
      • 2022-10-13
      相关资源
      最近更新 更多