Jmeter 在请求之前操作httpsampler的柱体

Jmeter 在请求之前操作httpsampler的柱体,jmeter,Jmeter,我正在用JMeter测试Eclipse RAP应用程序。 在RAP中,客户端(浏览器中的javascript框架)通过基于json的协议与服务器通信 消息如下所示: {"head":{"requestCounter":3,"uiSessionId":"832834"},"operations":[["set","w1",{"bounds": [0,0,1680,893],"cursorLocation":[1262,-1]}]]} 如您所见,uiSessionId中存储了一个会话ID。我

我正在用JMeter测试Eclipse RAP应用程序。
在RAP中,客户端(浏览器中的javascript框架)通过基于json的协议与服务器通信

消息如下所示:

{"head":{"requestCounter":3,"uiSessionId":"832834"},"operations":[["set","w1",{"bounds":    [0,0,1680,893],"cursorLocation":[1262,-1]}]]}
如您所见,
uiSessionId中存储了一个会话ID。我使用“正则表达式提取器”提取了这个id,并将其存储在名为
UI\u SESSION\u id`的变量中。
然后我编辑了记录的HTTP请求的原始“Post Body”:

{"head":{"requestCounter":3,"uiSessionId":"${UI_SESSION_ID}"},"operations":[["set","w1",{"bounds":    [0,0,1680,893],"cursorLocation":[1262,-1]}]]}
它是有效的

但是我必须修改每个HTTP请求的每个帖子主体,这可能会非常多。 经过一些研究,我认为使用“BeanShell预处理器”是正确的,但是:

var sampler = ctx.getCurrentSampler();
会给我一个HTTPSampler,但我没有找到任何方法可以检索帖子正文,用变量替换会话id并设置修改后的帖子正文。
JavaDoc:


您知道有什么方法可以用变量替换
uiSessionId
,而无需手动更改每个请求吗?

您不必这样做。在里程碑版本中引入了
uiSessionId
标题,为RAP中的多浏览器选项卡支持做准备,但它已被另一种不再使用此标题参数的机制所取代

从RAP 2.1 RC1开始,客户端现在在URL参数
cid
中为每个POST请求附加一个“连接id”。此参数不会影响负载测试,并且您不必将其从录制中删除。因为每个jmeter线程都有自己的HttpSession,所以所有线程都有相同的cid不是问题

这种变化的一个原因是能够加载测试RAP应用程序,而不会出现您一直在努力解决的问题