2011-04-13 78 views
1

我正在使用JMeter加载测试用GWT编写的webapp。在运行Java请求采样器(使用SyncProxy)的JMeter中分离用户会话在GWT应用程序中

我发现SyncProxy允许我编写Java代码以在应用服务器上执行远程方法,就像我是客户端(浏览器)一样。

我把我的Java代码封装到一个实现了JMeter的JavaSamplerClient的类中。这意味着我可以在JMeter对象内运行自己的Java代码,并根据测试逻辑执行它。

现在的问题。由于我没有使用JMeter的HTTPSampler,我的用户并没有以我想要的方式行事,即彼此独立。使用HTTPSampler + HTTP验证管理器+ HTTP Cookie管理器时,我从来没有遇到过这个问题。

我通过修改SyncProxy将验证数据作为额外的HTTP标头发送给每个请求来解决了基本验证部分。

问题:如何最好地实施我拥有的工具,以便我的用户独立并不时互相窃取对方的会话?

回答

0

你可能会考虑重组。

使用JMETER采样器登录和维护会话,并将userID和会话信息(cookie或sessionID)传递到您的java类。

使用BeanShell的采样器,您可以执行Java代码,并有机会获得JMeter的变量(用户ID和会话信息,在这种情况下)

1

我在做一些非常相似的过程。

我的方法是有一个单独的java采样器充当会话创建和登录机制。

syncproxy有一个多区段选项。会话实例存储在静态列表类中,会话信息可通过令牌进行选择。令牌引用由jmeter线程变量构造而成。

然后,当您使用主要的syncproxy java采样器时,请使用参数列表中的线程变量,并从正确的jmeter线程列表中选取正确的会话。

注意如果您使用多个会话并已使用AutoSyncProxy修补程序,则必须修改AutoSyncProxy.newProxyInstance方法以允许定义会话。

相关问题