WireMock 提供来自文件的响应并保持连接处于活动状态

问题描述

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

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

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

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

解决方法

简短的回答是否定的。

虽然 WireMock 会根据 HTTP 1.1 规范默认保持 connections 活动,但一旦发送完所有内容,无论是通过空块还是通过设置 Content-Length

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

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

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