模拟OAuth服务器进行测试

时间:2016-01-21 07:34:08

标签: spring oauth spring-boot mocking integration-testing

我想知道是否可以模拟oAuth(1,2)身份验证流程。我想测试而不需要连接到提供者本身。它应该是可能的,因为它只是一些通信交换。我不是在寻找像this那样仍然可以与远程服务器通信的东西。我想在测试时完全离线。

也许我可以运行自己的oAuth服务器。我应该使用Google oAuth服务,因此服务器的行为应该与他们一样。谷歌是否为他们的oAuth服务器提供了一些代码,或者是否可以创建一些假的服务器。注意测试应该是更多的集成测试。我想命令服务器返回一些预定义的响应。切换到实时oAuth提供程序只会更改远程URL。

也许只有一些http服务器可以,我只需要关心正确的通信消息格式。

2 个答案:

答案 0 :(得分:2)

查看Spring Reference文档的Client Side REST Tests部分。有了这种支持,您可以轻松伪造服务器并将所需行为记录到MockRestServiceServer

Here are some examples I created.

答案 1 :(得分:1)

请参阅以下步骤模拟OAuth2令牌,以便使用SOAPUI更快地进行本地开发。

<强>步骤:

  1. 创建一个REST soapUI项目,为URL&#34; http://localhost:9045/oauth/token&#34;创建一个POST资源。

  2. 为上述资源创建模拟服务。

  3. 如下所示创建模拟响应,您可以根据需要添加自己的参数和值。

    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.3/css/bootstrap.min.css" rel="stylesheet" /> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.bundle.min.js"></script> <div class="container-fluid"> <div class="row"> <div class="col-md-6"> <h1 class="mb-3">hello</h1> <button id="green-btn" class="btn btn-lg btn-primary mt-4">Start your free trial</button> </div> <div class="col-md-6"> <img id="pic1" style="display: width:100vh;height: 90vh;" src="https://via.placeholder.com/350x150"> <img id="pic2" style="display:none; width:100vh;height: 90vh;" src="https://via.placeholder.com/200x100"></div> </div> </div>

  4. 启动模拟服务。

  5. 使用本地REST POST请求进行测试。
  6. 模拟响应:

    enter image description here

    Mock Oauth2 SOAPUI测试:

    enter image description here