我是软件开发领域的新手,并且希望将我的知识扩展到自动化测试上。我阅读了很多有关Geb和Spock测试框架的文章,但并未得出结论它们的目的是什么。
我正确吗:
Geb用于页面对象(静态覆盖UI页面选择器,元素等)
Spock用于编写测试订单(测试案例/步骤)(还能够运行API测试,模拟数据,参数化的端点,值等)
->它们还有什么其他区别?我已经检查了两个文档,但无法理解。
我将不胜感激每一个实用的建议或示例,两者之间的差异,因为我涵盖了很多内容,但是只有理论上的示例,但是我没有得到主要的收获。
提前谢谢!
答案 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。
另一方面,SPOCK是一个BDD测试和规范框架,其灵感来自于JUnit,jMock,RSpec,Groovy,Scala,Vulcans等框架。
SPOCK与Geb高度兼容,并提供了一个'GebReportingSpec'类,该类必须由测试类进行扩展才能建立与Geb的兼容性