前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >高级性能测试系列《12. 使用V函数,进行变量引用,得到想要的结果值 》

高级性能测试系列《12. 使用V函数,进行变量引用,得到想要的结果值 》

作者头像
清菡
发布2022-06-21 15:37:01
1.9K0
发布2022-06-21 15:37:01
举报
文章被收录于专栏:清菡软件测试清菡软件测试

目录

  • 一、注意
  • 二、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_1var_2var_3

然后再使用$符号和大括号扩起来,进行了变量引用,这样才得到想要的结果值。

http请求:修改了名称和消息体数据

运行成功

3.注意

取样器在运行的时候,HTTP请求里的名称也会进行代码的运算。

register------${__V(var_${__counter(,)},)}放到名称里面,也只是为了在察看结果树里面可以直观的看到值,不用再点击进入request body里去看。

三、总结

类似: var_1var_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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 清菡软件测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
    • 一、注意
      • 二、V函数
        • 1.做一个变量的引用:
        • 2.用V函数
        • 3.注意
      • 三、总结
        • 脚本链接:
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档