Jmeter中Vars.get()和${}引用的区别

在用Jmeter做接口测试的过程中,经常用到jsonpath提取部分返回值后用beanshell进行处理或者使用beanshell断言。发现虽然${}和vars.get()都是用来获取变量的方法,但是在beanshell中使用却有一些区别,具体区别如下。

一、使用范围

${}可以在Jmeter中的任何地方使用,包括HTTP请求中的参数、断言、前置处理器、后置处理器等。vars.get()只能在编写脚本时使用,它需要一个参数,即变量名。

二、返回值

${}和vars.get()返回值的区别在于,${}返回的是字符串类型,而vars.get()返回的是Object类型。实际使用中,如果返回值不包含"",使用${}和vars.get()没什么区别,但是如果返回值包含引号,使用${}后代码容易报错。

例如以下脚本

执行后vars.get("data")可正常打印值,${data}在查看结果数中可以看下其变量值,但是拼接后引号没有转义

三、修改变量值后当前脚本获取到的值不一样

修改变量值后vars.get("data")可在当前脚本直接获取到修改后的值,${}在当前文件获取到的还是修改前的值。后续文件才能获取到修改后的值。

以上内容只是在使用中发现的一些问题,欢迎指正和补充

posted @   Shimmer~~  阅读(954)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示