【Jmeter5.1】函数助手一:__BeanShell、__char、__counter、__CSVRead

引言:函数助手的功能包含参数化、运算、字符编码格式转换、获取运行时参数等;函数的调用都是以${__function()}这种形式开始的,注意:"__"是英文半角两个下横线,function是函数名,其中的参数不同函数不同参数;

一、__BeanShell脚本语言

__BeanShell函数入参可以是BeanShell语法的程序语句或者BeanShell脚本文件。可以通过Ctrl+Shift+F1调出函数助手面板,或者在工具栏进入;

二、__char

功能:把一组数字转换成Unicode字符,比如我们输入65、65两个数字,生成__char(65,66),即转换为AB;生成的表达式,如有转义字符"\",请删除即ok;

三、__counter

__counter可以作为一个计数器使用,支持多线程(比如:有线程1与线程2,__counter计数器能分开记录线程迭代的次数,也可将两个线程迭代次数合在一起记录)。

下面我们就__counter的两种计数方式进行结果对比:

1.使用true,记录每个线程迭代次数;前提:线程数设置:10,每个线程循环数设置:3】这里还额外调用了__threadNum函数,主要是记录运行线程的ID;

运行结果:

2.使用false,记录所有线程迭代次数和;前提:线程数设置:10,每个线程循环数设置:3】,

运行结果:

四、__CSVRead

__CSVRead(),可以从文件中读取指定列的值;可以有4种不同情况,实现不同效果;分别是1.不同线程读取不同值;2.不同迭代读取固定值;3.不同迭代读取不同值;4,使用文件的别名调用表达式;

下面就来逐一对比:

步骤一:首先准备一个文件:E:\Jmeter\csvread.txt,来准备数据:

步骤二:使用__CSVRead()函数,生成表达式;https://blog.csdn.net/ak739105231/article/details/87534103

情况一:接下来,首先验证:在多线程的情况下(循环数:1),每个线程获取的文件内容,均是下一行的;

运行结果:

情况二:接下来,验证:在单线程的情况下,循环数大于1,每个线程循环迭代获取的文件内容,均是第一行的值,是不会变的;

 java请求不变都是用${__CSVRead(E:\Jmeter\csvread.txt,0)}:${__CSVRead(E:\Jmeter\csvread.txt,1)},就不截图;

运行结果:

情况三:接下来,验证:在单线程,循环数大于1的情况下,如何使每个线程循环迭代获取的文件内容,是下一行的值?答案是序列号填写:next();另外还要指定起始列(见下面截图2描述);

调用是需注意:要先表明读取哪一列的值;

若是两列都想对应着且要读取下一行的,如name、password必须对应,但又要求是下一行;

运行结果:

所以,${__CSVRead(E:\Jmeter\csvread.txt,next())}只起到换行的作用,什么时候需要换行,就加上next()就行。

举例2:

准备数据:

运行登录jforum结果:

情况四:接下来,使用文件别名,在调用__CSVRead()时,第二个参数;

java请求中,使用别名,代表文件目录;

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冷凝娇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值