在 GWT 应用程序上运行 Java 请求采样器(使用 SyncProxy)的 JMeter 中分离用户会话
我正在使用 JMeter 来加载测试用 GWT 编写的 Web 应用程序。
我发现 SyncProxy 允许我编写 Java 代码来在应用程序服务器上执行远程方法,如下所示如果我是客户端(浏览器)。
我已将 Java 代码包装到一个从 JMeter 实现 JavaSamplerClient 的类中。这意味着我可以在 JMeter 对象内运行我自己的 Java 代码,并根据测试逻辑执行它。
现在问题来了。由于我没有使用 JMeter 的 HTTPSampler,因此我的用户不会按照我希望的方式行事,即彼此独立。我在使用 HTTPSampler + HTTP 身份验证管理器 + HTTP Cookie 管理器时从未遇到过这个问题。
我通过修改 SyncProxy 以将身份验证数据作为每个请求的额外 HTTP 标头发送来解决了基本身份验证部分。
问题是:如何最好地实施我可以使用的工具,以便我的用户是独立的,并且不再时不时地窃取彼此的会话?
I'm using JMeter to load test a webapp written in GWT.
I've found SyncProxy lets me write Java code to execute remote methods on the appserver as if I were a client (browser).
I've wrapped my Java code into a class that implements JavaSamplerClient from JMeter. What this means is that I can run my own Java code inside a JMeter object and it gets executed according to test logic.
Now the problem. Since I'm not using JMeter's HTTPSampler, my users don't behave in the way I want them to, namely to be independent from one another. I never had that problem when using HTTPSampler + HTTP Authentication Manager + HTTP Cookie Manager.
I solved the Basic Authentication part by modifying SyncProxy to send authentication data as an extra HTTP header with each request.
And the question: How to best implement the tools I have at my disposal so that my users are independent and stop stealing each other's sessions from time to time?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我正在做一些非常类似的事情。
我的方法是使用一个单独的 java 采样器作为会话创建和登录机制。
syncproxy 有一个多会话选项。会话实例存储在静态列表类中,其中会话信息可通过令牌选择。令牌引用是从 jmeter 线程变量构造的。
然后,当您使用主syncproxy java采样器时,重新使用参数列表中的线程变量,并从列表中为正确的jmeter线程选择正确的会话。
注意:如果您使用多个会话并且已使用 AutoSyncProxy 补丁,则必须修改 AutoSyncProxy.newProxyInstance 方法以允许定义会话。
I am in the process of doing something very similar.
My approach is to have a separate java sampler acting as a session creation and login mechanism.
syncproxy has a multisession option. The session instance is stored in a static list class with session information selectable by a token. The token reference is constructed from the jmeter thread variable.
When you then use your main syncproxy java sampler, re use the thread variable in your parameter list and pick up the correct session from the list for the correct jmeter thread.
NB If you are using multiple sessions and have used the AutoSyncProxy patch then you will have to modify AutoSyncProxy.newProxyInstance method to allow the definition of a session.
您可能会考虑稍微重组。
使用 JMETER 采样器登录和维护会话,并将用户 ID 和会话信息(cookie 或 sessionID)传递到您的 java 类中。
使用 beanshell 采样器,您可以执行 java 代码并访问 jmeter 变量(在本例中为用户 ID 和会话信息)
You might consider restructuring slightly.
Use JMETER samplers to login and maintain your session, and pass the userID and session information (cookie or sessionID) into your java class.
Using the beanshell sampler, you can execute java code and have access to jmeter variables (userID and session info, in this case)