1

首先要感谢 WireMock 团队提供了令人惊叹的模拟解决方案,该解决方案易于使用和集成。

http://wiremock.org/docs/

我有一个具体的问题。我在本地机器上的 Junit 测试中运行 WireMock,如下所示。当 WireMock 启动时,它在 8089 端口上运行,如下所示,我可以通过以下链接浏览 URL,这是完美的。

http://localhost:8099/xx/xx/invoice/201628JP00006097

@Rule
public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().httpsPort(8089));

wireMockRule.stubFor(get(urlEqualTo("/xx/larxxs/invoice/201627JP00006087"))
        .willReturn(aResponse().withHeader("Content-Type", "text/xml").withBodyFile("K000006087.xml")));

在我的本地机器上托管这个模拟后,我在远程 UNIX 服务器上运行一些批处理作业。然后批处理作业尝试通过 https 链接从 mock 中获取此数据,并且它曾经正常工作。现在远程 UNIX 服务器发生了一些变化,或者我不确定一夜之间发生了什么变化,因为远程 UNIX 机器在尝试从 WireMock 获取数据时抛出错误。尽管 ping 正在我的机器上运行以删除 UNIX 机器,反之亦然,但我可以通过本地主机上的浏览器获取数据。

2016-08-03 17:31:50.101 ERROR 19483 --- [main] .w.s.l.s.b.t.OldLarsRestInvoiceGenerator : Exception while getting invoice data from Cybill rest serviceorg.springframework.web.client.ResourceAccessException: I/O error on GET request for "https://10.10.34.238:8089/xx/xx/invoice/201627JP00006087": Connection timed out; nested exception is java.net.ConnectException: Connection timed out

我想问,我们是否可以在远程 UNIX 机器上以编程方式从 Junit 运行 WireMock,以及我们如何做到这一点。就像在@Rule 中一样,我提到它在端口 8089 上运行。我也可以在这里提到主机。

我看到我们可以在远程服务器上安装 Jar 文件然后运行它,但是有没有办法以编程方式执行它并在远程服务器上启动 wireMock。

@Rule public WireMockRule wireMockRule = new WireMockRule(wireMockConfig() .httpsPort(8089) .host(myUNIXSERVER));

感谢帮助!!

4

1 回答 1

0

我想你应该试试下面

public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().port(8089));

只是因为现在你在嘲笑 https:// 并使用 https://

于 2016-09-27T14:27:00.650 回答