Session JMeter-线程组之间的共享会话

Session JMeter-线程组之间的共享会话,session,jmeter,threadgroup,Session,Jmeter,Threadgroup,我对JMeter是相当陌生的;我一直在寻找一种在并发执行线程组内的HTTP请求之间共享会话id的方法。我检查了其他问题,但它们似乎没有处理会话,我已经完成了在线程之间共享CSV变量的目标 我的测试套件结构: Test Plan - HTTP Cookie Manager - CSV Data Set (sharing mode: all threads) - HTTP URL Re-Writing Modifier (session arg name: jsessionid, caches se

我对JMeter是相当陌生的;我一直在寻找一种在并发执行线程组内的HTTP请求之间共享会话id的方法。我检查了其他问题,但它们似乎没有处理会话,我已经完成了在线程之间共享CSV变量的目标

我的测试套件结构:

Test Plan
- HTTP Cookie Manager
- CSV Data Set (sharing mode: all threads)
- HTTP URL Re-Writing Modifier (session arg name: jsessionid, caches session id)

- Thread Group 1
---Controller
------HTTP Request (uses csv value)

...

- Thread Group N (duplicates of TG 1)
---Controller
------HTTP Request (uses csv value)
这是我的测试计划采用的流程(如视图结果树侦听器所示):


我的目标是一次发送多个具有相同会话id的相同请求。正如您所看到的,除了会话id之外,它们是相同的。我可以做些什么来解决这个问题?

看看jMeter插件


使用它,您可以从一个线程将字符串值放入全局参数队列,然后从另一个线程获取该值,即使是在不同的线程组中。

一个非常不幸的手动解决方案:


手动获取会话id,将其放入用户定义的变量中,将会话变量附加到我的HTTP请求中的URL,而不使用HTTP URL重写修饰符。

为什么要尝试这样做?这是为了模拟Ajax吗?谢谢,但是你对我如何使用HTTP URL重写修改器有什么建议吗?它没有变量输入。你能解释一下为什么你需要在不同的用户之间同步sessionid吗?更具体地说,你想用它来模拟哪个真实世界的事件?你能解释一下为什么你需要cookie和URL重写吗?URL重写通常用作Cookie不可用(例如在浏览器中禁用)情况下的备用方案。基本上,它是一个测试用例,用于覆盖一次发送多个相同请求的“不耐烦用户”。如何获取该会话id并保存它们?
HTTP Request (TG 1-1) CSV Value: (1) *caches session id, let's say 123
...
HTTP Request (TG N-1) CSV Value: (1) *caches different session id, let's say 456
HTTP Request (TG 1-2) CSV Value: (2) jsessionid=123
...
HTTP Request (TG N-2) CSV Value: (2) jsessionid=456