从 JUNIT 以编程方式在远程 Unix 服务器上运行 WireMock
Posted
技术标签:
【中文标题】从 JUNIT 以编程方式在远程 Unix 服务器上运行 WireMock【英文标题】:Programmatically Run WireMock on a remote Unix Server from JUNIT 【发布时间】:2016-08-04 12:29:16 【问题描述】:首先要感谢 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。
@规则 公共 WireMockRule WireMockRule = 新 WireMockRule(wireMockConfig() .https端口(8089) .host(myUNIXSERVER));
感谢您的帮助!
【问题讨论】:
【参考方案1】:我觉得你应该试试下面
public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().port(8089));
只是因为现在你在嘲笑 https:// 并使用 https://
【讨论】:
以上是关于从 JUNIT 以编程方式在远程 Unix 服务器上运行 WireMock的主要内容,如果未能解决你的问题,请参考以下文章