当遇到如跨线程组调用变量等情况,需要设置全局变量。
1、打开函数助手

输入需要的值然后点击生成按钮,或者直接使用${__setProperty(newuserid,${userid},)}的格式

设置局部变量userid和token为全局变量并在另一线程中调用,调用方式见下

${__property(变量名)}
业务场景
一、登录系统后进行商品购买,进行做接口并发。
1、首先分了两个线程组login、pay_buy_finish 如图:
2、获取接口A正则表达式提取的session_sid作为全局变量,login线程只运行1次。如图:
3、把获取的sid 作为全局变量传递给线程组pay_buy_finish 中的请求使用:如图:
4、运行结果是这样:
线程组login 运行1次
pay_buy_finish运行5次
4次错误结果:
1次正确结果:
线程组pay_buy_finish总共运行5次,其中4次取值都不正确,只有1次取值正确。 如果有同学知道原因的请留言!
「原创声明:保留所有权利,禁止转载」
TesterHome 为用户提供「保留所有权利,禁止转载」的选项。 除非获得原作者的单独授权,任何第三方不得转载标注了「原创声明:保留所有权利,禁止转载」的内容,否则均视为侵权。 具体请参见
TesterHome 知识产权保护协议。
图形界面没关闭过的情况下,上次运行时的__setProperty会一直在,比如设置了属性A=11;下次运行的时候初始A就=11,然后才是被重新赋值,看你的查看结果树是在2个线程组下的,你可以把它拉到外面,看下login、pay_buy_finish的执行顺序,如果是这个原因,可以把login改成setup的
我在nogui 下运行也是如此,貌似和关闭图形界面没关系
另外我还有一个问题想要请教:设置全局变量后,在其他线程组中可以使用使用__property获取到该全局变量,可是该全局变量如何在beanshell中使用呢?
Mr.W 关闭了讨论
08月15日 12:50
Mr.W 重新开启了讨论
08月15日 13:22
${__property (x)}也可以直接用在beanShell中的,但是就是简单的替换,我觉得用props.get("x")会更加安全,否则x属性值有特殊字符时,遇到一些逻辑处理可能就会有问题,比如字符串相加等,beanShell窗口最下面有说明的有哪些可以用的内置对象
setup中定义全局变量x,然后在其他线程组中beanshell里直接使用${__property (x)}会报错: Attempt to access property on undefined variable or class name ,使用props.get("x"),提示“ Undefined argument: x”
之前遇到过这个问题,我的解决方式是:在beanshell中设置参数:${__property(x)},然后在beanshell script中使用bsh.args[0]进行获取,可是我不是很喜欢这种方式~~
props.get("x") 你这个报错的话Undefined argument: x
检查下是不是没加引号?
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构