iga*_*ete 8 integration-testing scala http-proxy wiremock akka-http
我有一个Http Client,它在现实生活中使用代理将请求发送到API。我正在尝试使用WireMock运行我的http客户端测试并模拟API的响应。但是,我无法使Wiremock与代理设置一起使用。我已经尝试了所有相关组合,但仍然无法通过成功的测试。
我尝试了viaProxy配置,proxiedWith但是也不确定我是否正确使用它们。该文档也无济于事。
客户端代码具有以下配置:
private val httpsProxySettings: ConnectionPoolSettings =
ConnectionPoolSettings(actorSystem)
.withConnectionSettings(ClientConnectionSettings(actorSystem))
.withTransport(
ClientTransport.httpsProxy(
InetSocketAddress.createUnresolved(PROXY_HOST, PROXY_PORT)
)
)
Run Code Online (Sandbox Code Playgroud)
测试配置大致如下:
val wireMockServer = new WireMockServer(
wireMockConfig().port(API_PORT).proxyVia(PROXY_HOST, PROXY_PORT)
)
wireMockServer.start()
WireMock.configureFor("localhost", API_PORT)
wireMockServer.stubFor(
put(anyUrl())
.willReturn(
aResponse()
.withStatus(201)
// .proxiedFrom(API_HOST)
)
)
Run Code Online (Sandbox Code Playgroud)
您可以尝试更改为
val wireMockServer = new WireMockServer(options().proxyVia(PROXY_HOST,PROXY_PORT))
此处所述http://wiremock.org/docs/proxying/。
您正在使用 put 请求进行测试吗?您可以尝试更改
wireMockServer.stubFor(put(anyUrl())...)
为
wireMockServer.stubFor(post(anyUrl())...)
或
wireMockServer.stubFor(get(anyUrl())...)
您使用的是 HTTPS 吗?它可能需要额外的配置。
另外,尝试添加至少包含内容的标头和与请求和响应的内容设置兼容的正文。
| 归档时间: |
|
| 查看次数: |
139 次 |
| 最近记录: |