hal*_*fer 7 java http-caching wiremock
我有一个连接到外部第三方API的应用程序,最近API的测试实例并不是特别可靠.这会停止开发进度并将我们的构建管道变为红色,所以我想添加一个HTTP记录代理来阻止这种情况发生.
我已经推荐了WireMock,并且尝试过它的记录和播放功能,它看起来确实非常好 - 它开箱即用.我们只需更改外部服务的配置URL,然后记录如下:
java -jar wiremock-standalone-2.3.1.jar \
--port 8080 \
--proxy-all="https://test-api.example.com/" \
--record-mappings \
--verbose
Run Code Online (Sandbox Code Playgroud)
这会在当前工作目录中创建缓存文件夹,然后可以通过终止录制器并切换到播放来切换到播放模式:
java -jar wiremock-standalone-2.3.1.jar \
--port 8080 \
--verbose
Run Code Online (Sandbox Code Playgroud)
但是,要在实践中使用它,我需要设置一个运行测试回归包的应用程序实例来记录大量的API使用情况,然后每天说一次.然后,我需要停止录制器并将缓存文件复制到播放过程,然后重新开始播放过程.
这可能会起作用,但感觉就像很多活动部件,理想情况下我想同时进行游戏和录音.如果需要新的API调用(由于自然的项目更改),这将允许自动刷新缓存,但默认情况下将在找到匹配项时进行回放.
这可能吗?我不是Java程序员,但假设如果要编写WireMock插件,它可能是可用的.如果可以在控制台上完成这将是很好的,但是手册的措辞表明播放和记录被维护者认为是单独的事情.
我确实想知道我是否可以切换到Mountebank,看起来它可能会支持这一点,但事实证明,播放和记录在这里也是单独的模式.在任何情况下,我都喜欢WireMock的开始是多么容易,所以如果可能的话,我想坚持下去.
但是,WireMock不会完全按照您的要求行事:
1)您可以使用--proxy-all参数而不是--record-mappings播放时.这将导致现有存根映射(已记录或以其他方式)无法匹配的任何请求被代理到实际服务.
2)在你收集了一些新记录的映射之后,一个让你非常接近你所追求的是一种解决方法是发送POST到/__admin/mappings/reset端点.这会导致扫描文件系统并加载所有映射(重新).
| 归档时间: |
|
| 查看次数: |
1404 次 |
| 最近记录: |