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

How to test a REST service that uses JWT in SoapUI?

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

我找到了一些像 http://jwtbuilder.jamiekurtz.com/ 这样的在线生成器,但是填写了所有字段,copy/paste 在 SoapUI 上一次又一次地为每个测试用例都没有效率。

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

谢谢!

我找到了一种 semi-automatic 方法,可以使用包含令牌的外部文件在测试用例中保留有效的 JWT 令牌,而不会浪费太多时间。

  1. 使用外部工具将有效的 JWT 令牌生成到文件中。
  2. 在 SoapUI 中打开您的项目并添加一个 jwt 变量,其值为 ${=new File('/path/to/token_file.txt').text}

  3. 在您的请求中,将您的变量作为 JWT header 引用,其值为 ${#Project#jwt}

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

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

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

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