gpt4 book ai didi

java - WireMock 播放和录音可以同时使用吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:24:46 25 4
gpt4 key购买 nike

我有一个连接到外部第三方 API 的应用程序,最近 API 的测试实例并不是特别可靠。这会停止开发进度并将我们的构建管道变为红色,因此我想添加一个 HTTP 记录代理来阻止这种情况的发生。

我有 WireMock推荐,并尝试过它的record and play features ,它看起来确实非常好 - 它几乎是开箱即用的。我们只是简单地更改为外部服务配置的 URL,然后这样记录:

java -jar wiremock-standalone-2.3.1.jar \
--port 8080 \
--proxy-all="https://test-api.example.com/" \
--record-mappings \
--verbose

这会在当前工作目录中创建缓存文件夹,然后可以通过杀死记录器并切换到播放来切换到播放模式:

java -jar wiremock-standalone-2.3.1.jar \
--port 8080 \
--verbose

但是,要在实践中使用它,我需要设置一个通过测试回归包运行的应用程序实例,以记录大量 API 使用情况,并以每天一次作为开始。然后我需要停止记录器并将缓存文件复制到播放过程,然后重新启动播放过程。

这可能行得通,但感觉有很多移动部件,理想情况下我想同时运行播放和录制。如果需要新的 API 调用(由于自然的项目更改),这将允许自动刷新缓存,但默认情况下会在找到匹配项的地方播放。

这可能吗?我不是 Java 程序员,但假设如果要编写 WireMock 插件,它可能可用。如果这可以在控制台上完成,那就太好了,但是手册的措辞表明维护者认为播放和录制是分开的事情。

我确实想知道我是否可以切换到 Mountebank ,看起来像 it might support this , 然而事实证明 that play and record are separate modes here too .无论如何,我喜欢 WireMock 的入门简单,所以如果可能的话我想坚持使用它。

最佳答案

WireMock 目前还不能完全满足您的要求,但是:

1) 回放时可以使用--proxy-all参数,不能使用--record-mappings。这将导致任何与现有 stub 映射(记录的或其他方式)不匹配的请求被代理到实际服务。

2) 一个让你非常接近你所追求的解决方法是在你之后发送一个 POST/__admin/mappings/reset 端点收集了一些新记录的映射。这会导致扫描文件系统并(重新)加载所有映射。

关于java - WireMock 播放和录音可以同时使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40743569/

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