Maven插件,运行“Web代理”进行集成测试

时间:2013-03-22 02:30:14

标签: java maven proxy integration-testing

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

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

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

是否有人知道任何允许此类集成测试的代理插件,例如“maven-simpleproxy-plugin”或类似内容?

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

有这样的事吗?

2 个答案:

答案 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:我不以任何方式加入项目