如何在 SoapUI 中测试使用 JWT 的 REST 服务?

Posted

技术标签:

【中文标题】如何在 SoapUI 中测试使用 JWT 的 REST 服务?【英文标题】:How to test a REST service that uses JWT in SoapUI? 【发布时间】:2016-02-05 17:20:01 【问题描述】:

我正在实施一些 REST 服务。我所有的测试都是使用 SoapUI 进行的。 最近我决定采用 JSON Web Token (JWT) 进行身份验证,但我在 SoapUI 上找不到任何支持(本机安装或插件,什么都没有)。

我发现了一些在线生成器,例如 http://jwtbuilder.jamiekurtz.com/,但填写了所有字段,在 SoapUI 上一次又一次地复制/粘贴,因为每个测试用例根本没有生产力。

我想知道是否有办法在 SoapUI 中测试 JWT 内容,或者我是否需要其他工具。有什么建议吗?

谢谢!

【问题讨论】:

【参考方案1】:

我找到了一种半自动的方法,可以使用包含令牌的外部文件在 TestCases 中保留有效的 JWT 令牌,而不会浪费太多时间。

    使用外部工具将有效的 JWT 令牌生成到文件中。

    在 SoapUI 中打开您的项目并添加一个带有值的 jwt 变量 $=new File('/path/to/token_file.txt').text

    在您的请求中,将您的变量作为 JWT 标头引用,其值为 $#Project#jwt

当令牌过期时,只需重新启动生成器脚本,SoapUI 会自动加载新令牌。

【讨论】:

【参考方案2】:

SoapUI 将调用您的身份验证服务器并获取令牌,然后它会自动将该令牌放入授权标头 (Bearer <token>)。

Add new authorization>OAuth 2>Resource owner password credential grant

然后将您的用户名和密码添加到客户端和资源部分。最后,将您的令牌端点作为访问令牌 url 并保存授权配置文件以在其他测试用例中使用。

【讨论】:

以上是关于如何在 SoapUI 中测试使用 JWT 的 REST 服务?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用soapui测试接口返回参数

如何使用soapUI模拟webservice客户端发送请求

SoapUI进行性能测试

如何将循环运行的测试用例添加到通过 SOAPUI 生成的 Junit 报告中

如何在 SoapUI 中发布表单数据以测试 multer node.js 应用程序

soapui调试测试用例