与WireMock巨大或无限响应

问题描述 投票:2回答:1

我想使用的HTTP客户端与一个巨大的数据量来测试我们的应用程序。是否有可能不分配一个字节数组或字符串与尺寸以产生具有WireMock无限或几千兆字节长度的输出?

据我看到ResponseDefinitionBuilder has three withBody* methods

  • public ResponseDefinitionBuilder withBodyFile(String fileName)
  • public ResponseDefinitionBuilder withBody(String body)
  • public ResponseDefinitionBuilder withBody(byte[] body)

我曾尝试withBodyFile("/dev/zero")但我得到以下异常:

WARN (ServletHandler.java:628) - /test.txt
com.github.tomakehurst.wiremock.security.NotAuthorisedException: Access to file /dev/zero is not permitted
    at com.github.tomakehurst.wiremock.common.AbstractFileSource.assertFilePathIsUnderRoot(AbstractFileSource.java:160)
    at com.github.tomakehurst.wiremock.common.AbstractFileSource.getBinaryFileNamed(AbstractFileSource.java:45)
    at com.github.tomakehurst.wiremock.http.StubResponseRenderer.renderDirectly(StubResponseRenderer.java:115)
    at com.github.tomakehurst.wiremock.http.StubResponseRenderer.buildResponse(StubResponseRenderer.java:64)
    at com.github.tomakehurst.wiremock.http.StubResponseRenderer.render(StubResponseRenderer.java:56)
    at com.github.tomakehurst.wiremock.http.AbstractRequestHandler.handle(AbstractRequestHandler.java:50)
    at com.github.tomakehurst.wiremock.servlet.WireMockHandlerDispatchingServlet.service(WireMockHandlerDispatchingServlet.java:111)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    ...

另外两个需要巨大的内存数组或字符串,我也想避免的。

我还检查了Fault enum,但它似乎并没有延长。

wiremock
1个回答
1
投票

你看到了文件的安全性错误的原因是,WireMock将只读取它的配置文件根目录下的文件,所以建立一个符号可能会奏效。

如果做不到这一点,只是创造一个非常大的文件会做的伎俩,和身体的文件流不会消耗大量的内存。

© www.soinside.com 2019 - 2024. All rights reserved.