gpt4 book ai didi

wiremock - WireMock 的巨大或无限响应

转载 作者:行者123 更新时间:2023-12-05 06:28:11 32 4
gpt4 key购买 nike

我想使用 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 只会读取其配置文件根目录下的文件,因此设置符号链接(symbolic link)可能有效。

如果做不到这一点,只需创建一个非常大的文件就可以解决问题,并且不会在流式传输正文文件时消耗大量内存。

关于wiremock - WireMock 的巨大或无限响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54519960/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com