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

发布时间 2023-06-29 14:37:27作者: Shimmer~~

在用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")可在当前脚本直接获取到修改后的值,${}在当前文件获取到的还是修改前的值。后续文件才能获取到修改后的值。

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