JMeter不遵循请求顺序,同时执行多个线程的脚本
JMeter does not follow request sequence, while executing script for multiple threads
我准备了一个JMeter脚本。
它有多个请求。我从响应中获取数据并将其用作下一个请求的参数。
即
- 请求 1:添加项目
- 请求 2:编辑项目 [从第一个请求的响应中获取的项目 ID]
- 请求 3:删除项目 [从第一个请求的响应中获取的项目 ID]
它在单线程下工作得很好。但是,当我 运行 多线程脚本时,它无法正常工作。
即
- 请求 1:添加项目(线程 1)
- 请求 2:编辑项目 [从第一个请求的响应中获取的项目 ID](线程 1)
- 请求 3:编辑项目 [从第一个请求的响应中获取的项目 ID](线程 2)
- 请求 4:删除项目 [从第一个请求的响应中获取的项目 ID](线程 1)
- 请求 5:删除项目 [从第一个请求的响应中获取的项目 ID](线程 2)
- 请求 6:添加项目(线程 2)
在请求 5 中,它尝试删除已删除的项目,因此失败了。这 运行 非常随机。
请帮忙。
它按预期工作。如果您使用不同的线程编辑和删除同一项目,第一个执行删除请求的线程将删除它,而其他线程将失败。
它应该是这样的:
- 请求 1:添加项目(线程 1)
- 请求 2:添加项目(线程 2)
- 请求 2:编辑项目 [从第一个请求的响应中获取的项目 ID](线程 1)
- 请求 3:编辑项目[从第二个请求的响应中获取的项目 ID](线程 2)
您可以使用 __threadNum() 函数作为后缀来唯一地寻址特定线程创建的项目的 ID。例如 ID_1
变量将保存项目的 ID,由第一个线程创建,ID_2
- 由第二个线程等创建。
您可以使用 __V() 函数使用动态线程号引用变量,例如:
${__V(ID_${__threadNum})}
有关上述和其他 JMeter 函数的更多信息,请参阅 Functions and Variables chapter of JMeter's User Manual and How to Use JMeter Functions 系列文章。
我准备了一个JMeter脚本。
它有多个请求。我从响应中获取数据并将其用作下一个请求的参数。
即
- 请求 1:添加项目
- 请求 2:编辑项目 [从第一个请求的响应中获取的项目 ID]
- 请求 3:删除项目 [从第一个请求的响应中获取的项目 ID]
它在单线程下工作得很好。但是,当我 运行 多线程脚本时,它无法正常工作。
即
- 请求 1:添加项目(线程 1)
- 请求 2:编辑项目 [从第一个请求的响应中获取的项目 ID](线程 1)
- 请求 3:编辑项目 [从第一个请求的响应中获取的项目 ID](线程 2)
- 请求 4:删除项目 [从第一个请求的响应中获取的项目 ID](线程 1)
- 请求 5:删除项目 [从第一个请求的响应中获取的项目 ID](线程 2)
- 请求 6:添加项目(线程 2)
在请求 5 中,它尝试删除已删除的项目,因此失败了。这 运行 非常随机。
请帮忙。
它按预期工作。如果您使用不同的线程编辑和删除同一项目,第一个执行删除请求的线程将删除它,而其他线程将失败。
它应该是这样的:
- 请求 1:添加项目(线程 1)
- 请求 2:添加项目(线程 2)
- 请求 2:编辑项目 [从第一个请求的响应中获取的项目 ID](线程 1)
- 请求 3:编辑项目[从第二个请求的响应中获取的项目 ID](线程 2)
您可以使用 __threadNum() 函数作为后缀来唯一地寻址特定线程创建的项目的 ID。例如 ID_1
变量将保存项目的 ID,由第一个线程创建,ID_2
- 由第二个线程等创建。
您可以使用 __V() 函数使用动态线程号引用变量,例如:
${__V(ID_${__threadNum})}
有关上述和其他 JMeter 函数的更多信息,请参阅 Functions and Variables chapter of JMeter's User Manual and How to Use JMeter Functions 系列文章。