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

时间:2019-06-24 15:58:11

标签: groovy automated-tests spock geb

我是软件开发领域的新手,并且希望将我的知识扩展到自动化测试上。我阅读了很多有关Geb和Spock测试框架的文章,但并未得出结论它们的目的是什么。

我正确吗:

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

Spock用于编写测试订单(测试案例/步骤)(还能够运行API测试,模拟数据,参数化的端点,值等)

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

我将不胜感激每一个实用的建议或示例,两者之间的差异,因为我涵盖了很多内容,但是只有理论上的示例,但是我没有得到主要的收获。

提前谢谢!

2 个答案:

答案 0 :(得分:3)

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

“它可以用于脚本编写,抓取和通用自动化,或者通过与Spock,JUnit和TestNG等测试框架集成,也可以用作功能/ Web /验收测试解决方案。”

Geb的收获是Web自动化。

Spock的收获是它是测试和规范框架。

示例

您可以用Geb检查以下内容:

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

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

答案 1 :(得分:0)

GEB构建在WebDriver库的顶部,并且与所有与WebDriver一起使用的浏览器和驱动程序兼容。

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

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

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

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

The Book of Geb

中了解有关Geb的更多信息

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

SPOCK与Geb高度兼容,并提供了一个'GebReportingSpec'类,该类必须由测试类进行扩展才能建立与Geb的兼容性