动态控制的Swagger / OpenAPI模拟服务器,用于测试目的

3
我正在寻找一个能够以swagger / openapi规范文件作为参数并生成可通过REST API接口进行编程控制的模拟服务器的项目/工具。
例如 - 如果我的API包含以下端点:"POST /v1/create",并且我有描述该API的swagger规范,我希望我的模拟服务器能够以类似以下方式执行:
mock-server -f swagger.yaml -p 8080

当服务器运行时,可以通过不同端口的控制界面与其自身的REST API进行交互,并更改正在运行的swagger模拟服务器的行为——例如:更改响应代码、设置响应内容等。
我希望将这样的模拟服务器作为系统测试套件的一部分,以更好地验证我的服务与其他服务交互时的行为,而无需运行那些“真实”的服务。
我正在寻找类似于Shopyify的ToxiProxy(https://github.com/Shopify/toxiproxy),但具有上述功能的东西。
谢谢!
Eldad

1
这些模拟服务器中的任何一个是否符合您的需求? - Helen
2
不,SwaggerHub和Prism都很接近,但它们似乎只允许设置静态响应,这很好,但对于自动化测试来说并不理想,因为我希望能够在我的测试设置/拆卸步骤中更改API响应。 - Eldad
@Eldad:你找到解决方案了吗?你接受这个答案了吗? - Phung D. An
2个回答

2

1

我相信Specmatic可以帮助你完成这个任务。

mock-server -f swagger.yaml -p 8080

Specmatic的工作方式与此完全相同。要使用OpenAPI规范文件启动模拟服务器,我们可以运行以下命令。

specmatic stub service.yaml --port 8080

这里是文档

当服务器运行时,可以通过不同端口的控制界面与其自己的REST API进行交互,并更改运行swagger mock服务器的行为 - 即更改响应代码、设置响应内容等。

这也是受支持的。Specmatic具有HTTP接口,您可以在其中发布请求和响应映射/期望值。我们称之为动态模拟。这里是文档

这里是关于此的视频

声明:我是Specmatic的首席开发人员和技术总监。


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