为了账号安全,请及时绑定邮箱和手机立即绑定

如何模拟一个真正运行的应用程序?

如何模拟一个真正运行的应用程序?

凤凰求蛊 2023-04-26 13:45:06
如果 MS2 正在运行,我的一个微服务 [ MS1] 在启动时检查另一个微服务 [ ]。MS2如果 MS2 正在运行,MS1 将启动,否则无法启动。但目前我正在MS2我的本地机器上运行,这需要大量的RAMans 减慢我的机器。是否有任何机制使得当 MS1 启动并查找 MS2 时,似乎 MS2 正在运行但实际上没有运行真正的 MS2?更新 :假设 MS2 正在运行localhost:1234,现在 MS1 将使用 REST 连接到它。
查看完整描述

2 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

你可以看看WireMock哪个是 HTTP API 的模拟器,所以它适合本地开发。使用它时,您将能够模拟微服务,就好像它作为独立的微服务在给定的主机和端口上运行一样。

您可以将它作为独立进程运行,也可以作为 spring 应用程序的一部分运行。

选项 1 - 配置独立的 wiremock 服务器:

  1. 下载Wiremock 独立 jar

  2. 使用端口在本地主机上运行独立服务器1234

java -jar wiremock-standalone-2.24.0.jar --port 1234
  1. 配置 MS1 微服务以用作localhost:1234MS2 主机。

  2. 用一些响应模拟你的 MS2(用 wiremock 模拟)端点:

curl -X POST --data '{ "request": { "url": "/yourendpoint", "method": "GET" }, "response": { "status": 200, "body": "Response" }}' http://localhost:1234/__admin/mappings/new

在这里我们做了一个模拟,当您使用 HTTP GET 访问模拟服务器时,/yourendpoint您将收到文本Response作为响应。

  1. 现在,当您使用 GET 时,localhost:1234/yourendpoint您会得到模拟的响应:

curl http://localhost:1234/yourendpointResponse

完整的例子可以在Wiremock Standalone docs


选项 2 - 在 Spring 应用程序中配置 WireMock 服务器:

  1. 添加WireMock dependency到您的项目(注意不仅要将其添加到测试范围)

  2. 创建一个用于设置服务器的 Spring bean:

@Component

public class CustomMicroserviceMock {


    private WireMockServer wireMockServer;


    public CustomMicroserviceMock() {

        wireMockServer = new WireMockServer(options().port(1234));

        wireMockServer.stubFor(get(urlEqualTo("/yourendpoint"))

                .willReturn(aResponse()

                        .withHeader("Content-Type", "text/plain")

                        .withBody("Response")));

        wireMockServer.start();

    }



    @PreDestroy

    void preDestroy() {

        wireMockServer.stop();

    }


}

当我们点击时,localhost:1234/yourendpoint我们得到回应:Response

这只是一个 POC,但它在两种情况下都有效。


查看完整回答
反对 回复 2023-04-26
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

我建议在您的本地机器上使用 WireMock 作为独立服务,或者如果您熟悉 docker,您可以检查 wiremock docker 图像:

我将它用于我的开发和测试,它确实是一个强大的存根解决方案:)

祝你好运


查看完整回答
反对 回复 2023-04-26
  • 2 回答
  • 0 关注
  • 85 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信