如何在Jmeter中使用HTTPS和cookie的syncproxy

时间:2015-07-07 15:00:36

标签: java cookies https jmeter gwt-rpc

我有一个使用GWT实现的webapp,客户端/服务器正在与GWT-RPC协议进行通信。

要执行负载测试,我想使用Jmeter。我已经实现了一个Jmeter插件,它使用SyncProxy来执行GWT-RPC调用。在开发环境中,它没有任何问题,但我在生产中遇到麻烦,因为GWT-RPC调用无效。

我收到以下异常: com.gdevelop.gwt.syncrpc.exception.SyncProxyException:服务com.xxx.MyWebAppService缺少POLICY_NAME_MISSING

开发环境和生产环境之间的主要区别是: - 使用HTTPS代替HTTP - 在生产时,如果客户端尚未通过身份验证,Apache服务器将执行HTTP重定向,否则请求将转发到tomcat实例。还有一组用于管理此会话机制的Cookie。

有没有办法在使用SyncProxy调用GWT-RPC之前在我的Jmeter插件中添加Cookie?

有人对这种架构有一些经验吗? 的问候,

塞巴斯蒂安

1 个答案:

答案 0 :(得分:0)

正如我在上一篇文章中所解释的那样,执行GWT-RPC调用的问题是由于没有从Jmeter转移到GWT-RPC的Cookie。

要解决此问题,我已完成以下操作:

  1. 要将Cookie从Jmeter转移到我的Jmeter插件,我有设置的Jmeter属性:CookieManager.save.cookies = true。接下来,我可以使用简单的参数
  2. 将Jmeter环境中的cookie传输到我的Java插件
  3. 为了初始化GWT-RPC代理与syncProxy库的通信,我调用了方法SyncProxy.setBaseURL(),但不幸的是,这种方法没有采用cookie管理器,然后初始化无法工作。为解决此问题,我在SyncProxy库中执行了少量代码更改,以使用默认的CookieManager。在SyncProxy GitHub https://github.com/jcricket/gwt-syncproxy/issues/49
  4. 上跟踪此问题
  5. 要创建存根以执行GWT-RPC调用,我使用SyncProxy.createProxy()和ProxySetting,其中包含一个带有我的默认cookieManager的CookieManager。
  6. 通过这些更改,即使在我的生产环境中,我的Jmeter插件也可以执行GWT-RPC调用; - )