各线程组之间的变量要互享,就要把变量(提取器取出来的)放在测试计划中,然后直接用时如此写:${测试计划中的变量名}。
目前先了解下beanshell的内置变量:vars,props,log。vars一般就是局部变量,同线程组间变量共享。
提取器之后,beanshell中的内容如下:
//局部变量转为全局变量
//设置全局变量方法一:用函数__setProperty设置
${__setProperty(globalPrameter,${localPrameter},)};
//设置全局变量方法二:用内置对象props设置
props.put("globalPrameter2","${localPrameter}");
//全局变量不能直接使用.如${globalPrameter},是错的,是取不到值的
//而要要用如下方式取。在脚本中使用时,用前两种方式取后放在测试计划的用户自定义参数中,然后再使用
log.info("获取全局变量的值,方法一:"+"${__property(globalPrameter,,)}");
log.info("获取全局变量的值,方法二:"+"${__P(globalPrameter,)}");
log.info("获取全局变量的值,方法三:"+props.get("globalPrameter"));
//获取全局变量的值
String globalPrameter2 = props.get("globalPrameter2");
//设置全局变量的值
props.put("globalPrameter2",globalPrameter2);
log.info("查看设置的全局变量:"+props.get("globalPrameter2"));
//获取局部变量的值
String localPrameter2 = vars.get("localPrameter");
//设置局部变量的值
vars.put("localPrameter2","zzzz");
log.info("查看设置的局部变量:"+localPrameter2);
提取器:
beanshell(代码内容见以上):
测试计划中设置变量。
数据流向为:请求响应数据--》提取器(实际为局部变量)--》转为全局变量---》测试计划中变量--》其它线程中使用:
其它线程组中使用: