目录
- 一、注意
- 二、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(,)}
参考:${__counter(,)}
函数的用法
循环次数为3次
用户定义的变量的名称
${var_${__counter(,)}}
编写http请求的名称
运行结果
我们期望它得到过程是:{var_1} {var_2}
期望的结果是:引用变量的值。
实际结果是: 要进行两次变量计算。这个方法是办不到,得不到我们想要的结果。
2.用V函数
得到了这样一个V函数:${__V(var_${__counter(,)},)}
这个V函数把它的这个(var_${__counter(,)},)
整体进行计算,计算完毕后,得到一个var_1
,var_2
,var_3
。
然后再使用$符号和大括号扩起来,进行了变量引用,这样才得到想要的结果值。
http请求:修改了名称和消息体数据
运行成功
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