我最近发现Karate用于测试 Web 服务的框架。但也有Spock框架提供类似(在我心里)功能。这些框架之间有什么区别?我想建议我们的测试人员看一下。
开发商Karate这里。我只读过有关 Spock 的文章,但这是我的观点。
Karate 专注于测试 HTTP Web 服务,因此旨在对 JSON 和 XML 进行操作和执行断言。结果——你不再需要 POJO-s.
而 Spock 是一个通用测试框架。它基于 Groovy,因此与仅使用 Java 相比,它在一定程度上减少了冗长性,并且它添加了 BDD 风格,这对于表达测试用例很有价值。就像 Karate 一样,它具有测试用例结构、生命周期(在钩子、环境切换等之前)数据驱动的测试助手,以及与单元测试和报告框架(如 JUnit)的集成。
IMO 的一个关键区别是,虽然 Spock 和类似的框架试图抽象出 Java 的冗长性,转而采用更清晰、更易读的语法,但它们仅在一定程度上取得了成功。 Karate 几乎完全绕过了 Java(从测试编写者的角度来看),这意味着您正在您想要的确切“层”中进行操作 - 即 HTTP 和 JSON / XML。
我想向你指出这一点空手道和 REST-assured 之间的比较- 因为其中一些要点也适用于斯波克,这对于任何评估空手道的团队来说都是一个有用的参考。
编辑 - Karate 的数据驱动测试与 Spock 非常相似,并且使用 JS(可以进行 Java 互操作)而不是 Groovy:https://twitter.com/KarateDSL/status/1359369240227106816
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)