问题描述
我们要测试一个特殊的场景。
我们将使用在特定时间范围内保持打开状态的 HTTP 流。该流由纯文本行 (CSV) 组成,并使用分块传输编码进行流式传输。
当我们连接时,我们希望从服务器端的一个文件中获取所有数据,一旦提供了大量数据,连接就会保持活动状态,因为有可能通过同一连接传输更多数据.
wiremock 是否可以提供文件中的所有内容并保持连接有效(不发送空块来表示流结束)?
解决方法
简短的回答是否定的。
虽然 WireMock 会根据 HTTP 1.1 规范默认保持 connections 活动,但一旦发送完所有内容,无论是通过空块还是通过设置 Content-Length
。
您想要做的(如果我理解正确的话)是在单个响应的上下文中输出多个有效负载,而 WireMock 没有办法做到这一点。
一个可能的解决方案可能是将所有响应部分连接到一个文件中,尽管我怀疑您出于未说明的原因而忽略了该选项。
另一种可能性是向 WireMock 提供您自己的 FileSource
实现,从而提供您自己的 InputStreamSource
,这将使您能够更好地控制底层文件如何在响应中流出。