如何在 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 生成的 Junit 报告中