使用Mockito进行API固定负载测试



我有一个带有REST API的Spring Boot应用程序。在幕后,它使用Vended SDK致电供应商服务。我需要在应用程序上运行负载测试,但不想致电供应商API并在测试过程中意外崩溃。

是否可以在Junit测试之外使用Mockito在正常应用程序运行时为供应商SDK对象创建模拟?

我认为我将使用基于配置文件的配置光束来启用模拟对象,当时配置文件为"性能测试"。但是我找不到这种方式使用Mockito的文章/讨论/提及,这使我第二次猜测我的方法。想法?

您可能应该寻找使用Wiremock或类似软件模拟供应商服务的服务,例如:与假服务器进行集成测试

WireMock是一台存根服务器,您可以在Junit测试中方便地启动/停止。设置响应时,它的作用类似于远程服务器。该文档真的很好,我不想在这里复制所有内容。

只是一个样本:

public class MyTest {
    @Rule
    public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicPort().dynamicHttpsPort());
    @Test
    public void exampleTest() {
        stubFor(get(urlEqualTo("/my/resource"))
                .willReturn(aResponse()
                    .withStatus(200)
                    .withBody("<response>Some content</response>")));
        ...        
        verify(postRequestedFor(urlMatching("/my/resource/[a-z0-9]+"))
                .withRequestBody(matching(".*<message>1234</message>.*")));
    }
}

对于LoadTest,您宁愿在某个地方运行存根,并设置了一些脚本。

您可能没有提及Mockito,因为将模拟嵌入使用量响应到您的应用程序是一个坏主意,并且无法帮助您获得负载测试的现实结果(因为您的响应将更快,并且不会通过序列化/挑战)。

其他也可以在这里看:如何使用Spring模拟远程REST API?

相关内容

  • 没有找到相关文章

最新更新