这可能令人困惑,所以请耐心等待。
我对在代理后面运行maven不感兴趣。我了解如何配置maven,eclipse或JVM本身以通过代理进行Web访问。
但是,在我的项目中,我有一个组件可以检索给定URL的内容并对其进行分析。它使用下面的Apache Http Components,涂有一些预定义的配置和错误处理(实际上只是隐藏锅炉板代码的包装器)。由于apache-httpcomponents本身可以使用代理,我的组件将接受可以传递给apache-httpcomponents的代理配置。
是否有人知道任何允许此类集成测试的代理插件,例如“maven-simpleproxy-plugin”或类似内容?
我想测试我的组件在代理后运行良好的能力。我想我需要运行某种插件,它将启动一个虚拟代理服务器以及maven-embedded-glassfish-plugin。我可以在glassfish中托管一个虚拟内容,并让我的组件尝试通过这个“maven-simpleproxy-plugin”实例访问它...从而允许我测试组件正确处理其代理配置的能力。
有这样的事吗?
答案 0 :(得分:1)
我会使用maven exec插件启动您要测试的代理服务器。然后编写一个在post-integration-test
阶段调用的脚本,该脚本关闭代理服务器。然后,您将通过与生产环境相同的代理服务器类型进行测试。
答案 1 :(得分:0)
我认为您正在寻找MockServer。它在github上看起来非常活跃,拥有1.000多颗星和25多个贡献者,可以执行以下操作,如其网站上所述:
MockServer代理可以:
- 使用以下任何代理方法代理所有请求:
- 港口转发
- 网络代理(即HTTP代理)
- HTTPS隧道代理(使用HTTP CONNECT)
- SOCKS代理(即动态端口转发)
- 验证请求已发送(即在测试断言中)
- 记录请求和响应,以分析系统的行为方式
关于您一直要求的不同部署/使用选项,让我再次从他们的网站上复制:
可以运行MockServer和MockServer代理:
- 通过Maven插件作为Maven构建周期的一部分
- 以编程方式通过@Before或@After方法中的Java API
- 通过JUnit测试中的@Rule注释字段使用JUnit @Rule
- 从命令行作为测试环境中的独立进程
- 作为现有应用程序服务器的可部署WAR
- 作为Grunt插件,作为Grunt构建周期的一部分
- 作为任何Node.js代码的Node.js(npm)模块
- 作为任何支持Docker的环境中的Docker容器
ps:我不以任何方式加入项目