1

我们在 WSO2 ESB 中开发了一个代理服务,它是一个编排器,并调用聚合响应的多个服务。

我如何测试代理流程的每个步骤(或中介),以及系统如何对每种可能的情况做出反应(例如成功、失败、响应时间慢...)?

我们试图模拟代理调用的每个服务的行为(使用Wiremock),对于每个步骤,但我们无法动态更改每个调用指向的端点(或端口)。

例子:

  • 真正的服务正在监听8280端口
  • Wiremock 正在监听端口8281
  • 我们需要动态改变Proxy 中的端点,让它调用Wiremock服务 (8281) 而不是真正的 (8280)

如果有其他测试方法,我很乐意探索不同的解决方案......

4

2 回答 2

0

我无法正确回答您的问题...您不能在您的代理服务中提及端口为 8281 的端点 url...吗?

于 2015-07-03T09:30:34.680 回答
0

终于找到了解决问题的办法。

使用注册表的端点,您可以从注册表中获取资源、更改它们并更新它。

例如,您可以执行以下操作:

AutomationContext esbContext = new AutomationContext("ESB", TestUserMode.SUPER_TENANT_ADMIN);
String esbSession = esbContext.login();

ResourceAdminServiceClient resourceClient = new ResourceAdminServiceClient(esbContext.getContextUrls().getBackEndUrl(),
            esbSession);

String endpoint = resourceClient.getTextContent("/_system/governance/endpoints/HelloService.xml")
            .replace(":8280", String.format(":%s", port));

resourceClient.updateTextContent("/_system/governance/endpoints/HelloService.xml", endpoint);
于 2015-07-03T12:24:21.893 回答