我最近一直在玩JMeter。我的任务是使用 REST 请求更新 Google 表格中一定数量的用户名和职位。
(表格示例)
id | 名字 | 角色 |
---|---|---|
1 | 随机名称 | 随机工作 |
2 | 随机名称 | 随机工作 |
3 | 随机名称 | 随机工作 |
4 | 随机名称 | 随机工作 |
5 | 随机名称 | 随机工作 |
6 | 随机名称 | 随机工作 |
7 | 随机名称 | 随机工作 |
8 | 随机名称 | 随机工作 |
9 | 随机名称 | 随机工作 |
10 | 随机名称 | 随机工作 |
为此,我编写了一个代码来生成随机名称和作业。这段代码工作正常。难点如下。我还需要为 ID 编写代码,该 ID 将递增 1,以便每次迭代都会更新下一个用户。我编写了一个循环,将 ID 加 1,直到达到最终结果(我要更新的列表的末尾,例如从 5 到 10)。并将其放入变量中。
int b = 10;
for (int i = 5; i <= b; i++) {
String intToString = i + "";
vars.put("IDvar", intToString);
IDvar = vars.get("IDvar");
log.info("ID: " + IDvar);
}
我应该将此变量放在路径中 (...?command=updateuserbyid&id=${IDvar}&name=${randomNameVar}&role=${randomJobVar}) 并且它应该更新指定中的数据范围。
JMeter 看到了该变量,但它没有按照我想要的方式工作。它只更新循环中最后一个用户的数据(在本例中是第 10 个用户),并且我创建的线程数或循环计数并不重要。但我希望所有用户的数据从 ID 5 更新到 ID 10。我查看了日志,循环在那里工作正常。循环显示所有应该更新的 ID。
2024-03-13 19:02:28,052 INFO o.a.j.u.BeanShellTestElement: ID: 5
2024-03-13 19:02:28,052 INFO o.a.j.u.BeanShellTestElement: ID: 6
2024-03-13 19:02:28,052 INFO o.a.j.u.BeanShellTestElement: ID: 7
2024-03-13 19:02:28,052 INFO o.a.j.u.BeanShellTestElement: ID: 8
2024-03-13 19:02:28,052 INFO o.a.j.u.BeanShellTestElement: ID: 9
2024-03-13 19:02:28,052 INFO o.a.j.u.BeanShellTestElement: ID: 10
问题是,为什么用户不按周期更新呢?我缺少什么?请不要无礼,我只是一个想学习如何编写代码的艺术学生。
您的代码每次被调用时都会返回
10
。
如果您想要递增的数字,您可以使用:
${__jm__Thread Group__idx}
JMeter 变量,返回线程组的当前迭代