1

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

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

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

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

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

有这样的东西存在吗?

4

2 回答 2

1

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

于 2013-03-22T12:07:36.510 回答
0

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

MockServer 代理可以:

  • 使用以下任何代理方法代理所有请求:
    • 转发端口
    • Web 代理(即 HTTP 代理)
    • HTTPS 隧道代理(使用 HTTP CONNECT)
    • SOCKS Proxying(即动态端口转发)
  • 验证请求已发送(即在测试断言中)
  • 记录请求和响应以分析系统的行为方式

关于您一直要求的不同部署/使用选项,让我再次从他们的网站复制:

MockServer 和 MockServer 代理可以运行:

  • 通过 Maven 插件作为 Maven 构建周期的一部分
  • 通过 @Before 或 @After 方法中的 Java API 以编程方式
  • 通过 JUnit 测试中的 @Rule 注释字段使用 JUnit @Rule
  • 从命令行作为测试环境中的独立进程
  • 作为可部署到现有应用程序服务器的 WAR
  • 作为 Grunt 插件作为 Grunt 构建周期的一部分
  • 作为来自任何 Node.js 代码的 Node.js (npm) 模块
  • 在任何启用 Docker 的环境中作为 Docker 容器

ps:我与该项目没有任何关系

于 2017-07-31T12:20:50.427 回答