我有一个工作流程,其中涉及保存一些数据,然后在几秒钟后更新它。我创建了一个带有如下参数的 CSV 文件:
ID,Success
1,true
2,false
3,true
4,false
5,true
等等等等。第一个 HTTP 请求是保存一个新 ID:
POST http://server/save
{ id: 1 }
第二个 HTTP 请求使用以下状态更新 ID:
POST http://server/update/
{ id: 1, success: true }
我创建了一个 JMeter 测试来对这个工作流程进行基准测试。我通过以下步骤创建了一个线程组:
1. Do save request
2. Wait a random period between 5 and 30 seconds
3. Do update request
我已将线程组设置为一次使用 2 个线程作为初始测试。但是,我注意到发生的事情实际上是这样的:
Thread 1
----------------------------------------------------
| 1. Do save request |
| 2. Wait a random period between 5 and 30 seconds |
| 3. Do an update request |
|--------------------------------------------------|
Thread 2
----------------------------------------------------
| 1. Do save request |
| 2. Wait a random period between 5 and 30 seconds |
| 3. Do an update request |
|--------------------------------------------------|
问题是,我真正想做的是确保始终有 2个同时向服务器发出的 HTTP 请求。在这种情况下,它产生 2 个线程并作为一个线程运行整个工作流,这意味着我无法保证服务器上的特定负载。我希望它做的是:
Thread 1
-------------------------------------------------------
| |
| HTTP request |
| ********************************************** |
| * 1. Do save request * |
| ********************************************** |
| |
| 2. Wait a random period between 5 and 30 seconds |
| |
| HTTP request |
| ********************************************** |
| * 3. Do update request * |
| ********************************************** |
| |
|-----------------------------------------------------|
有没有一种方法可以编写我的 JMeter 测试,以确保服务器上始终有 2 个同时发生的 HTTP 请求?此外,更新请求必须在保存请求之后发生,否则 ID 将不存在。
这是我的 JMeter 测试的图像:
while控制器只处理 CSV 文件中的每一行。