如何在带有 HTTPS 和 cookie 的 Jmeter 中使用 syncproxy
how to use syncproxy in Jmeter with HTTPS and cookie
我有一个使用 GWT 实现的 Web 应用程序,客户端/服务器正在使用 GWT-RPC 协议进行通信。
要执行负载测试,我想使用 Jmeter。我已经实现了一个使用 SyncProxy 执行 GWT-RPC 调用的 Jmeter 插件。在开发环境中,它可以正常工作,但我在生产环境中遇到了麻烦,因为 GWT-RPC 调用不工作。
我得到以下异常:
com.gdevelop.gwt.syncrpc.exception.SyncProxyException:缺少 POLICY_NAME_MISSING 服务 com.xxx.MyWebAppService
开发环境和生产环境的主要区别是:
- 使用 HTTPS 而不是 HTTP
- 在生产中,如果客户端尚未经过身份验证,Apache 服务器将执行 HTTP 重定向,否则请求将转发到 tomcat 实例。还有一组用于管理此会话机制的 Cookie。
有没有办法在使用 SyncProxy 调用 GWT-RPC 之前在我的 Jmeter 插件中添加 Cookie?
有人对这种类型的架构有一些经验吗?
此致,
塞巴斯蒂安
正如我在最初 post 中所解释的那样,执行 GWT-RPC 调用的问题是由于 Cookie 没有从 Jmeter 传输到 GWT-RPC。
为了解决这个问题,我做了以下工作:
- 为了将 Cookie 从 Jmeter 传输到我的 Jmeter 插件,我设置了 Jmeter 属性:CookieManager.save.cookies=true。接下来,我能够使用简单的参数
将 cookie 从 Jmeter 环境传输到我的 Java 插件
- 为了初始化 GWT-RPC 代理与 syncProxy 库的通信,我调用了方法 SyncProxy.setBaseURL() 但不幸的是,此方法不采用 cookie 管理器,因此初始化无法进行。为解决此问题,我对 SyncProxy 库中的代码进行了少量更改,以使用默认的 CookieManager。在 SyncProxy GitHub https://github.com/jcricket/gwt-syncproxy/issues/49
上跟踪了此问题
- 为了创建存根以执行 GWT-RPC 调用,我将 SyncProxy.createProxy() 与 ProxySetting 结合使用,其中包含带有我的默认 cookieManager 的 CookieManager。
通过这些更改,我的 Jmeter 插件甚至可以在我的生产环境中执行 GWT-RPC 调用;-)
我有一个使用 GWT 实现的 Web 应用程序,客户端/服务器正在使用 GWT-RPC 协议进行通信。
要执行负载测试,我想使用 Jmeter。我已经实现了一个使用 SyncProxy 执行 GWT-RPC 调用的 Jmeter 插件。在开发环境中,它可以正常工作,但我在生产环境中遇到了麻烦,因为 GWT-RPC 调用不工作。
我得到以下异常: com.gdevelop.gwt.syncrpc.exception.SyncProxyException:缺少 POLICY_NAME_MISSING 服务 com.xxx.MyWebAppService
开发环境和生产环境的主要区别是: - 使用 HTTPS 而不是 HTTP - 在生产中,如果客户端尚未经过身份验证,Apache 服务器将执行 HTTP 重定向,否则请求将转发到 tomcat 实例。还有一组用于管理此会话机制的 Cookie。
有没有办法在使用 SyncProxy 调用 GWT-RPC 之前在我的 Jmeter 插件中添加 Cookie?
有人对这种类型的架构有一些经验吗? 此致,
塞巴斯蒂安
正如我在最初 post 中所解释的那样,执行 GWT-RPC 调用的问题是由于 Cookie 没有从 Jmeter 传输到 GWT-RPC。
为了解决这个问题,我做了以下工作:
- 为了将 Cookie 从 Jmeter 传输到我的 Jmeter 插件,我设置了 Jmeter 属性:CookieManager.save.cookies=true。接下来,我能够使用简单的参数 将 cookie 从 Jmeter 环境传输到我的 Java 插件
- 为了初始化 GWT-RPC 代理与 syncProxy 库的通信,我调用了方法 SyncProxy.setBaseURL() 但不幸的是,此方法不采用 cookie 管理器,因此初始化无法进行。为解决此问题,我对 SyncProxy 库中的代码进行了少量更改,以使用默认的 CookieManager。在 SyncProxy GitHub https://github.com/jcricket/gwt-syncproxy/issues/49 上跟踪了此问题
- 为了创建存根以执行 GWT-RPC 调用,我将 SyncProxy.createProxy() 与 ProxySetting 结合使用,其中包含带有我的默认 cookieManager 的 CookieManager。
通过这些更改,我的 Jmeter 插件甚至可以在我的生产环境中执行 GWT-RPC 调用;-)