【问题标题】:Maven plugin that runs a "web proxy" for integration tests为集成测试运行“网络代理”的 Maven 插件
【发布时间】:2013-03-11 19:14:37
【问题描述】:

这可能会令人困惑,所以请耐心等待。

我对在代理后面运行 maven 不感兴趣。我了解如何配置 maven、eclipse 或 JVM 本身以通过代理获取 Web 访问。

但是,在我的项目中,我有一个组件可以检索给定 URL 的内容并对其进行分析。它在下面使用 Apache Http 组件,涂上一点预定义的配置和错误处理(实际上只是一个隐藏样板代码的包装器)。由于 apache-httpcomponents 本身可以使用代理,因此我的组件将接受可以传递给 apache-httpcomponents 的代理配置。

有谁知道任何允许这种类型的集成测试的代理插件,比如“maven-simpleproxy-plugin”或类似的东西?

我想测试我的组件在代理后面运行良好的能力。我想我需要运行某种插件来启动一个虚拟代理服务器以及 maven-embedded-glassfish-plugin。我可以在 glassfish 中托管一个虚拟内容,并让我的组件尝试通过这个“maven-simpleproxy-plugin”实例访问它……从而使我能够测试组件正确处理其代理配置的能力。

有类似的东西吗?

【问题讨论】:

    标签: java maven proxy integration-testing


    【解决方案1】:

    我会使用maven exec 插件来启动您要测试的代理服务器。然后编写一个在post-integration-test 阶段调用的脚本,用于关闭代理服务器。然后,您将通过与生产环境相同的代理服务器类型进行测试。

    【讨论】:

    • 感谢您的回复。等几天看看有没有其他人有其他建议,但我可能会将其标记为官方答案。
    【解决方案2】:

    我想你正在寻找MockServer。它在 github 上看起来非常活跃,有 1000 多颗星和 25 多位贡献者,并且可以执行以下操作,如其网站上所述:

    MockServer 代理可以:

    • 使用以下任一代理方法代理所有请求:
      • 端口转发
      • Web 代理(即 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:我与该项目没有任何关系

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-12
      • 2014-08-30
      • 2014-11-25
      • 1970-01-01
      • 2019-05-08
      • 1970-01-01
      • 2012-02-22
      • 2015-06-18
      相关资源
      最近更新 更多