WireMock 提供来自文件的响应并保持连接有效

WireMock serve response from file and keep connection alive

我们有一个特殊的场景要测试。

我们将使用在特定时间范围内保持打开状态的 HTTP 流。该流由纯文本行 (CSV) 组成,并使用分块传输编码进行流式传输。

当我们连接时,我们可能希望从服务器端的一个文件中获取所有数据,并且一旦提供大量数据,连接就会保持活动状态,因为可能会有更多数据通过相同的连接。

Wiremock 是否可以提供文件中的所有内容并保持连接有效(不发送空块来表示流结束)?

简短的回答是否定的。

虽然根据 HTTP 1.1 规范默认情况下 WireMock 将保持 connections 活动,但一旦发送完所有内容,它总是会终止 response ,通过空块或通过设置 Content-Length.

您想要做的(如果我理解正确的话)是在单个 响应 的上下文中流出多个有效负载,而 WireMock 没有办法做.

一个可能的解决方案是将所有响应部分连接到一个文件中,尽管我怀疑您出于未说明的原因而忽略了该选项。

另一种可能性是向 WireMock 提供您自己的 FileSource 实现,从而提供您自己的 InputStreamSource 这将使您更好地控制底层文件在响应。