RESTful API Swagger 测试平台

RESTful API Testbed with Swagger

我正在尝试为 REST API 开发一个自动化测试套件。有人告诉我,Swagger 将是用于执行此操作的正确工具。 API 正在使用 Spring 框架开发。

我不知道如何使用 Swagger 来执行此操作。 根据我的理解,Swagger 用于创建漂亮的 API 文档。 我看过 this Dreamfactory blog post,看起来他们有某种浏览器测试功能,但我认为它不是真正的测试套件。

我也看过 ServiceStack(和 Cucumber),但由于它是另一个框架,我认为它不会起作用。

This google 小组讨论也没有特别指出任何地方。

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

谢谢!

Swagger 可以让您很好地记录您的 API,并将帮助您使用 swagger-ui 进行手动、实时测试,因为您可以轻松填写​​参数并通过网络查看响应ui。尝试将 Swagger 演示作为我所指的示例。 http://petstore.swagger.io/

我没有试过这个,但这可能对针对 Swagger 定义的更多自动化测试感兴趣。 https://github.com/Maks3w/SwaggerAssertions

您可以在 http://swagger.io/commercial-tools/ 上找到许多使用 Swagger 规范来(自动)测试您的 REST API 的软件。但它们不是免费的。

Postman 是使用 Swagger api 进行测试的好工具。它还可以存储请求和响应。更多详情如下 https://www.getpostman.com/docs/importing_swagger

您可能还想查看此页面上按语言分类的社区工具。 http://swagger.io/open-source-integrations/

正如其他答案所提到的,Swagger 提供了一种方法来定义和记录您的 API 端点、方法、响应、错误等。它不会进行任何开箱即用的自动化测试。

虽然有一些工具可以读取 Swagger 定义以创建自动化测试:

  • Assertible is a tool where you can import your Swagger spec to automatically create tests and assertions for every endpoint and method. You can then set up monitoring, post deployment testing, and alerts. (Read the blog Testing an API using Swagger)。它有一个免费计划,可以选择升级以进行更多测试。
  • swagger-test 是一个 NPM 包,如果您正在寻找与您的代码集成的东西。我没有亲自使用过它,但它看起来确实很活跃和有用。
  • Dredd is another really cool open-source tool that will automate testing your Swagger spec against a live backend. This is also a CLI too, and it works with API Blueprint in addition to Swagger.

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

另一个答案提到查看 swagger.io 上的 Commercial Tools 页面,其中有更多托管服务(免费和付费)。

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

我已经写了一篇 article 关于如何使用 Swagger 或 OpenAPI 规范生成所有测试逻辑的文章。然后通过 excel 张输入测试数据。这样,您的测试数据和测试逻辑将保持分离,将来如果您的 Swagger 规范发生变化,您甚至可以快速重新同步测试逻辑。