Jmeter基础-变量和函数

Jmeter基础-变量和函数,第1张

通过Jmeter手动添加用户变量的方式

测试j计划添加用户参数

线程组添加用户参数

具体任务添加用户参数

当然还有其他的添加变量的方式,但是其他方式都需要写代码这里就不多说了,之后会讲

我们演示下创建变量,(一般在线程组里创建变量的比较多,因为一个线程组内的所有任务都是同类的)

变量的作用域

变量的作用范围是他本身和后代

测试计划>线程组>任务

比如在线程组中添加的变量那么,这样当前这线程组合他内部的任务可以共享

使用变量

语法: ${ 变量名} 只要能输入的地方都能使用变量


在请求体或者其他任意地方其实都能使用的


… 至于其他地方就不在一一演示了,自己慢慢探索把,反正只要是能输入的地方都能使用的

函数

使用jmeter函数需要借助函数助手来帮助我们直接生成可使用的函数
点击jmeter的界面,功能栏选项→ 函数助手对话框

这个下拉框里都是Jmeter可以使用的函数

下面我们就简单介绍下常用的函数

_CSVRead

从数据库中导出csv格式的文件,我使用的是Navicat,注意去掉双引号

把第一行删除,


点击生成后会自动将函数拷贝到粘贴板中你直接复制就能使用

${__CSVRead(,)} 使用方式(参数1文件位置,参数2占位符从0开始):

${__CSVRead(C:\Users\huanmin\Desktop\t_user.csv,0)}
${__CSVRead(C:\Users\huanmin\Desktop\t_user.csv,1)}

StringFromFile

每次读取文件一行

__FileToString

函数__FileToString可以被用来读取整个文件。


每次对该函数的调用,都会读取整个文件。


__machineName和__machineIP

返回主机名称和主机的ip

__javaScript
  1. 函数__javaScript可以用来执行JavaScript代码片段(非Java),并返回结果值。


  2. JMeter的_javaScript函数会调用标准的JavaScript解释器,还可以直接调用jmeter的内置函数。


  3. 请记得为文本字符串添加必要的引号。


    另外,如果表达式中有逗号,请确保对其转义。


    例如,${__javaScript('${sp}'.slice(7\,99999))},对7之后的逗号进行了转义。


__Random:随机数函数(数值)

函数__Random会返回指定最大值和最小值之间的随机数。



_RandomString():随机字符串函数

1、Random string length:随机字符的长度

2、Chars to use for random string generation:用来生成随机字符串的字符,可以是纯数字,纯字符,字符字母数字组合

3、Name of variable in which to store the result (optional):随机生成的字符被变量保存

__property

函数__property会返回一个JMeter属性的值。


如果函数找不到属性值,而又没有提供默认值,则它会返回属性的名称。


${__property(user.dir)}:返回属性user.dir的值。



${__property(user.dir,UDIR)}:返回属性user.dir的值,并保存在变量UDIR中。



${__property(abcd,ABCD,atod)}:返回属性abcd的值 (如果属性没有定义,返回"atod"),并保存在变量ABCD 中。



${__property(abcd,atod)}:返回属性abcd 的值(如果属性没有定义,返回"atod"),但是并不保存函数的返回值。


_P

1、函数_P是一个__property简化版的属性函数,目的是使用命令行中定义的属性。


2、不同于函数_property,本函数没有提供选项用于设置保存属性值的变量。


另外,如果没有设置默认值,默认值自动设为1。


列: jmeter -Jgroup1.threads=7 -Jhostname1=www.realhost.edu

获取值如下:

${__P(group1.threads)}:返回属性group1.threads的值。


${__P(hostname1)}:返回属性hostname1 的值。


${__P(hostname,www.baidu.com)}:返回属性hostname的值,如果没有定义该属性则返回值www.baidu.com。


在上面的例子中,第一个函数调用返回7,第二个函数调用返回www.realhost.edu

__log

函数__log会记录一条日志,并返回函数的输入字符串。


${__log(Message)}:写入日志文件,形如"…thread Name : Message"。


__split

1、函数__split会通过分隔符来拆分传递给它的字符串,并返回原始的字符串。


如果分隔符紧挨在一起,那么函数就会以变量值的形式返回"?"。


拆分出来的字符串,以变量${VAR_1}、{VAR_2}…以此类推的形式加以返回。


2、分隔符默认是逗号,如果你想要多此一举,明确指定使用逗号,需要对逗号转义,如“,”

__setProperty

函数__setProperty用于设置JMeter属性的值。


函数的默认返回值是空字符串,因此该函数可以被用在任何地方,只要对函数本身调用是正确的。


属性对于JMeter是全局的,因此可以被用来在线程和线程组之间通信。


__time

函数__time可以通过多种格式返回当前时间。



YMD = yyyyMMdd。



HMS = HHmmss。



YMDHMS = yyyyMMdd-HHmmss。



YMDHMS = yyyy/MM/dd HH:mm:ss。


__eval

1、函数__eval可以用来执行一个字符串表达式,并返回执行结果。


如此一来,用户就可以对字符串(存储在变量中)中的变量和函数引用做出修改。


2、例如,给定变量name=Smith、column=age、table=birthdays、SQL=select ${column} from ${table} where name='${name}',那么通过${__eval(${SQL})},就能执行"select age from birthdays where name='Smith'"


这样一来,就可以与CSV数据集相互配合,例如,将SQL语句和值都定义在数据文件中。


__urlencode和

__urlencode 转码
${__urlencode(${__urldecode(https://www.cnblogs.com/zengjindong/p/10912175.html)})}

__urldecode 解码
${__urldecode(https%3A%2F%2Fwww.cnblogs.com%2Fzengjindong%2Fp%2F10912175.html)}

__UUID

${__UUID}

__escapeXml 和__escapeHtml

将xml特殊字符转义

__counter

每次一个线程执行一次计数器就会加一

${__counter(FALSE,)}

__changeCase

大小写转换 LOWER都是小写 CAPITALIZE都是大写
${__changeCase(AAAvvvddd,LOWER,)}

点赞 -收藏-关注-便于以后复习和收到最新内容
有其他问题在评论区讨论-或者私信我-收到会在第一时间回复
如有侵权,请私信联系我
感谢,配合,希望我的努力对你有帮助^_^

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/580657.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-11
下一篇 2022-04-11

发表评论

登录后才能评论

评论列表(0条)

保存