目录
一、注意
二、V函数
1.做一个变量的引用
2.用V函数
3.注意
三、总结
一、注意
jmeter
中,做功能测试、自动化测试时,你可以使用Beanshell
元件。
但是,在性能测试中,能不用,坚决不要用带有任何Beanshell
字样的元件,相关脚本里都不要去使用这个。
要写脚本,用其它的元件,不用Beanshell
的元件。
如果你要写java
脚本,也不要使用Beanshell
的任何元件,建议大家使用JSR223
开头的元件。
原因是:本身这个Beanshell
元件的代码,消耗的资源就非常得多,它的性能比较差。以Beanshell
开头的所有元件的性能都比较差。
做功能测试的时候不需要考虑性能。
但是在性能测试里,能节约一点资源就节约一点资源,所以能不用Beanshell
元件就不用,如果用了,会发现误差是Beanshell
元件资源消耗比较多而导致的。
jmeter
支持的语言:java、jython、python、groovy、js
。不支持python3
。
二、V函数
V函数:叫做拼接函数。
1.做一个变量的引用:
${__counter(,)}



${var_${__counter(,)}}


我们期望它得到过程是:${var_1}
${var_2}
${var_3}
。
期望的结果是:引用变量的值。
实际结果是: 要进行两次变量计算。这个方法是办不到,得不到我们想要的结果。
2.用V函数

得到了这样一个V函数:${__V(var_${__counter(,)},)}
这个V函数把它的这个(var_${__counter(,)},)
整体进行计算,计算完毕后,得到一个var_1
,var_2
,var_3
。
然后再使用$符号和大括号扩起来,进行了变量引用,这样才得到想要的结果值。


3.注意
取样器在运行的时候,HTTP请求里的名称也会进行代码的运算。
把register------${__V(var_${__counter(,)},)}
放到名称里面,也只是为了在察看结果树里面可以直观的看到值,不用再点击进入request body
里去看。


三、总结
类似: var_1
、 var_2
这种前缀相同,后缀是递增数字的变量名称,常见于通过jdbc
协议从数据库中获取数据时。
select name from table where id like '123%';
---结果可能有多条数据。
这个脚本就会返回多个name
值, 我用table_name
这个变量来接收这几个值。
就出现变量名称变成了:table_name_1代表第一个值
,table_name_2代表第二个值
...........
${变量名称}
得到变量的值。
${__V(前缀_可变后缀)}
得到是这个“前缀_可变后缀”的变量名的值。
${__P(属性名称)}
得到的是属性名称的值。
脚本链接:
链接:https://pan.baidu.com/s/1nXz4orJqu2VK8q5UB8IWqA?pwd=1234 提取码:1234
文章中除标明“图片来自网络”的图片,皆为小编本人所画所截图,计算机知识都一样,如有雷同,纯属巧合。
欢迎关注 “清菡软件测试”,进群加v:qhtester,备注:学校(公司名)+姓名(昵称),否则不予通过,感谢点赞与分享!