将Swagger定义导入SoapUI社区版?

17

我正在尝试使用SoapUI(免费/开源版)探索它是否对我们经常进行的广泛API测试有用,因为现在我们大部分测试都是在每个服务器/应用程序的swagger-ui页上进行的,而一些功能,如自动化某些测试用例,可能非常方便(以及许多其他功能)。

我的问题是,我无法弄清楚如何将所有端点导入到SoapUI中,而不必一个一个手动创建它们。我发现有一种从swagger导入的选项,但我似乎无法使其工作,并且在Google上搜索也没有帮助我。

  1. 使用免费版本是否可以实现?我知道REST发现是专业版功能,但这不是我要找的东西。
  2. 有人能告诉我步骤是什么吗?我尝试将其指向swagger-ui页面,但那没什么用。我可以访问应用程序源代码(用java + spring编写),需要导入的swagger定义是否位于其中某个位置?我找过了,但可能没有找对地方。

我知道我被困在一个可能非常简单的问题中,但我会感激任何关于此的帮助。

编辑:使用的SoapUI版本为5.2.1

2个回答

30
以下是导入Swagger定义到SoapUI的步骤,确保手头有swagger定义或其URL(基本上是JSON):
预先条件是已安装SoapUI的Swagger插件,如此处所示。
1. 使用“文件->创建空项目”菜单选项创建一个空项目。 2. 右键单击上一步中创建的项目。 3. 您应该能够看到一个名为“导入Swagger”的选项,如下所示。Importing Swagger 4. 它将显示一个对话框,您可以在其中提供Swagger定义URL。
完成。所有资源及其方法应出现在您的项目中。
如果您无法在右键上下文中看到“导入Swagger”选项,则表示插件未安装。如果您已经安装了SoapUI-5.2.1,那么我确定它已经安装了。
更新
添加一些公共的swagger定义,以便某些人想要尝试其中之一时会很方便。
这是宠物商店 swagger定义v2.0,由SwaggerUI提供。
一旦导入swagger定义,您将看到类似于下面的内容。

After the import of swagger definition is successful


SoapUI只能导入json格式的Swagger文件,不支持Yaml格式。我用swagger-editor将YAML导入并下载为JSON。 - intotecho
@intotecho 你确定吗?我已经成功导入了YAML文件(SoapUI 5.3.0),只需要指定文件路径和正确的mime类型(“application/yaml”)。 - naXa stands with Ukraine
如果Swagger文件扩展名为.yaml,则可以正常工作,但是如果是.yml,则会失败,有时在下载Swagger定义文件时会得到这种文件扩展名。 - lweingart
如果URL需要基本身份验证怎么办?我似乎找不到提供凭据给“导入swagger”选项的方法。 - Rohan
2
@user311174,工具和需求不断变化,可能需要添加新问题。顺便说一下,免费版本不支持OAI 3.0。希望您正在使用Swagger 3.0,该工具不支持。 - Rao
显示剩余4条评论

8

我曾经遇到过同样的问题。

我的情况是我安装SoapUI时没有选择“源”选项。

Windows SoapUI option installation

您需要重新安装该应用并选择此选项。


此外:如果您使用不同的用户安装它,而非您正在使用SoapUI的用户,则需要将插件从该用户复制到您的目录:C:\Users<admin user>.soapuios\plugins 到 C:\Users<user>.soapuios\plugins。 - guerda
奇怪的是,只有在以root身份启动SoapUI时,导入swagger文件的选项才会出现...我还没有安装任何插件,所以不确定为什么会发生这种情况... - silveiralexf

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