Swagger的RESTful API测试平台

11

我正在开发一个用于 REST API 的自动化测试套件。有人告诉我使用Swagger会是正确的工具来完成这项任务。 该API是使用Spring Framework开发的。

我不知道如何使用Swagger来实现这一点。据我所知,Swagger用于创建美观的API文档。我查看了此Dreamfactory博客帖子,它似乎具有某种内置浏览器测试功能,但我认为它并不是真正的测试套件。

我还看了ServiceStack(和cucumber),但由于它是另一个框架,我认为它不起作用。

这个谷歌讨论组没有特别指出任何方向。

那么,有人知道如何使用Swagger开发RESTful API测试平台吗?

谢谢!

5个回答

25
作为其他答案所提到的,Swagger 提供了一种定义和记录 API 端点、方法、响应、错误等的方式。它并不会直接提供任何自动化测试功能。
但是,有一些工具可以读取 Swagger 定义来创建自动化测试。
  • Assertible是一个工具,你可以将Swagger spec导入其中,以自动为每个端点和方法创建测试和断言。然后,您可以设置监视、发布后测试和警报。(阅读博客使用Swagger测试API)。它有一个免费计划,可以选择升级以获得更多的测试。
  • swagger-test是一个NPM包,如果你正在寻找与你的代码集成的东西。我个人没有使用过,但它看起来很活跃和有用。
  • Dredd是另一个非常酷的开源工具,它会自动针对实时后端测试您的Swagger规范。这也是一个CLI工具,它与API Blueprint以及Swagger一起使用

还有其他工具,因为Swagger为API开发人员提供了良好的通用语言,所以有一些很棒的基于它编写的工具。

另一个答案提到了在swagger.io上查看商业工具页面,其中有一些更多的托管服务(免费和付费)。

完整披露 - 我是Assertible的联合创始人之一,如果您有机会使用它,我很乐意听取您的反馈。


1
有用,但非常垃圾邮件。由于限制(仅15个免费测试),Assertible不是免费工具。 - Blaze
@Blaze - 谢谢,你说得对,措辞有误。我更新了答案以更清楚地表达 :) - Cody Reichert

9
Swagger可以帮助你很好地记录API,并通过swagger-ui进行手动和实时测试,你可以轻松填写参数并通过Web UI查看响应。尝试Swagger演示以了解我所指的内容,例如:http://petstore.swagger.io/ 我没有尝试过这个,但这可能会对使用Swagger定义进行更自动化的测试感兴趣。https://github.com/Maks3w/SwaggerAssertions

我建议您也看一下 https://github.com/byjg/php-swagger-test。 - Joao M

2

0

我写了一篇文章,介绍如何通过使用Swagger或OpenAPI规范来生成所有测试逻辑,并通过Excel表格提供测试数据。这样,您的测试数据和测试逻辑将保持分离,如果将来Swagger规范发生更改,您甚至可以快速重新同步测试逻辑。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接