【发布时间】:2019-09-20 03:20:29
【问题描述】:
J 米脚本包含两个线程。线程 01 是一个设置线程,它在执行作为测试的线程 2 之前循环“n”次。 我在两个线程中都实现了两个 beanshell 处理器,并包含以下代码。
线程 01:(设置线程)>> 使用 Beanshell 后处理器
String mapKey=vars.get("count_id");
String refresh_Token = vars.get("refreshToken");
Map refreshCodeMap = new HashMap();
refreshCodeMap.put(mapKey,refresh_Token);
log.info(mapKey + "Map key");
log.info(refresh_Token + "refresh Token");
bsh.shared.refreshCodeMap= refreshCodeMap;
线程02:(测试)>>使用beanshell预处理器
String count_id=vars.get("count_id");
Map refreshCodeMap = bsh.shared.refreshCodeMap;
log.info(count_id);
log.info(refreshCodeMap.get(count_id));
但在线程 o1 中,输出如下。
2019-09-20 08:41:57,194 INFO o.a.j.u.BeanShellTestElement: 1
2019-09-20 08:41:57,194 INFO o.a.j.u.BeanShellTestElement: null
2019-09-20 08:41:57,210 INFO o.a.j.u.BeanShellTestElement: 2
2019-09-20 08:41:57,211 INFO o.a.j.u.BeanShellTestElement: null
2019-09-20 08:41:57,224 INFO o.a.j.u.BeanShellTestElement: 3
2019-09-20 08:41:57,224 INFO o.a.j.u.BeanShellTestElement: null
2019-09-20 08:41:57,234 INFO o.a.j.u.BeanShellTestElement: 4
2019-09-20 08:41:57,234 INFO o.a.j.u.BeanShellTestElement: null
2019-09-20 08:41:57,243 INFO o.a.j.u.BeanShellTestElement: 5
2019-09-20 08:41:57,243 INFO o.a.j.u.BeanShellTestElement: null
2019-09-20 08:41:57,252 INFO o.a.j.u.BeanShellTestElement: 6
2019-09-20 08:41:57,253 INFO o.a.j.u.BeanShellTestElement: null
2019-09-20 08:41:57,260 INFO o.a.j.u.BeanShellTestElement: 7
2019-09-20 08:41:57,260 INFO o.a.j.u.BeanShellTestElement: null
2019-09-20 08:41:57,265 INFO o.a.j.u.BeanShellTestElement: 8
2019-09-20 08:41:57,265 INFO o.a.j.u.BeanShellTestElement: null
2019-09-20 08:41:57,270 INFO o.a.j.u.BeanShellTestElement: 9
2019-09-20 08:41:57,270 INFO o.a.j.u.BeanShellTestElement: null
2019-09-20 08:41:57,275 INFO o.a.j.u.BeanShellTestElement: 10
2019-09-20 08:41:57,275 INFO o.a.j.u.BeanShellTestElement: 2f889ccd-acfe-3345-bc68-21a52e71c8e2
这里定义的 hashmap 是在线程 1 执行的每个循环中被覆盖。因此哈希映射只包含最后一个循环执行数据。我需要分配在线程 01 执行中创建的所有值并在线程 2 中获取它们。 有什么建议吗?
【问题讨论】:
标签: performance jmeter share beanshell