jmeter的参数化与函数

1.1.1.  变量的定义与引用

变量命名规范:建议使用字母、数字、下划线,不要使用数字开头

定义变量的位置:用户定义变量(配置元件),用户参数(前置处理器),及测试计划里面的用户变量(作用于整个测试计划)

引用:${变量名}

面试题:用户定义变量与用户参数的区别?

用户定义变量:全局变量,可以跨线程组被引用,在脚本启动运行时,获取一次值,在运行过程中,不会动态获取值

注:全局变量在python\java中值可以被改变,但在jmeter中不能被改变

用户参数:局部变量,不能直接跨线程组被引用,在脚本启动运行时,获取一次值,在运行过程中,会动态获取值

 

1.1.2.  函数介绍与概念

 

位置:tools -》 函数助手对话框 -》 选择函数

       字符串连接:字符串 直接跟上 函数 (如183${__Random(00000000,99999999,)})

(在python中使用+进行连接)

注意:函数对话框中结果框:判断函数是否可用,不依赖结果框

 

 

面试题:在性能测试中,怎样用每次注册的账号进行登录?

1.  在线程组下面(不ok),直接添加用户定义变量,用户参数(值使用随机函数,动态生成),并没有满足我们的要求

用户定义变量:注册第一次成功,后续注册都不会成功;登录均成功(用户定义变量只会获取一次值)

用户参数:注册均成功,登录所有的均不成功(动态获取的值均没有注册)

把用户参数放在注册接口下面(ok),注册均成功,登录与注册账号一致均登录成功(前置处理器的作用域:作用于当前取样器及之后的取样器)

 jmeter的参数化与函数

 

 

 

把用户定义变量放在注册接口下面(不ok),注册第一次成功,之后均失败,登录均成功(用户定义变量只能获取一次值)

把用户参数放在线程组下面,且勾选【每次迭代更新一次】(ok),注册均成功,登录与注册账号一致均登录成功(在一个线程组下面是1个迭代整体,所有的取样器都执行完才是一次完整的迭代,所以,在一个迭代内部,注册和登录是同一个账号)

 jmeter的参数化与函数

 

 

 

迭代一次和循环一次的区别?

迭代:迭代一次是指线程组下所有的取样器执行完一次是一次迭代

循环:循环控制器的循环是循环,线程组中的循环是迭代

  jmeter的参数化与函数

 

 

 

 

函数概念:java代码中的方法

Jmeter函数分为两类:1.jmeter自带函数,2.扩展函数

Jmeter自带函数:在函数助手中,可以直接使用

Jmeter扩展函数:需要引入第三方jar包,才能在函数助手中找到,但有些函数找不到帮助文档(扩展函数文献:http://testingpai.com/article/1640409614545

函数的使用方法:__函数名(参数1,参数2)(双下划线开头,函数名,小括号,括号里的多个参数使用英文逗号隔开)

注:函数名称严格区分大小写

1.1.3.  简单加密函数

简单加密函数:${__digest(MD5,123456,,,)}

实现复杂的加密,需要写代码,不要使用beanshell,要使用jsr223元件

支持goovy,java,python2,js

一般用beanshell写的代码,可复制到jsr223中使用

需要引入加密算法的jar包,找开发要jar包放到...\apache-jmeter-5.x\lib\ext

 jmeter的参数化与函数

 

 

 

 

   

1.1.4.  计数器函数

计数器函数:${__counter(,)},只能实现每次加1,步长不能改变

 jmeter的参数化与函数

 

 

 jmeter的参数化与函数

 

 

1.1.5.  线程数函数

线程数函数:${__threadNum}

 jmeter的参数化与函数

 

 

1.1.6.  计数器元件

计数器元件:自定义步长加减法,配置元件 > 计数器元件(当设置了最大值,在运行过程中,超过最大值时,从起始值开始循环;若未设置最大值,则继续往上加)

 jmeter的参数化与函数

 

 

 jmeter的参数化与函数

 

 

 

计数器元件:勾选【与每用户独立的跟踪计数器】:每个线程数都有自己独立的计算器

 jmeter的参数化与函数

 

 

 jmeter的参数化与函数

 

 

 jmeter的参数化与函数

 

jmeter的参数化与函数

 

 

 

1.1.7.    CSV文件函数(不建议使用)

csv文件读取函数:${__CSVRead(,)},读取CSV文件,不建议使用,只能取到单列值

 jmeter的参数化与函数

 

 

 

1.1.8.  时间函数

时间函数:参考文献http://testingpai.com/article/1599878631425

1.时间格式转化:${__dateTimeConvert(,,,)}:

 jmeter的参数化与函数

 

 

 jmeter的参数化与函数

 

 

 

2. 当前时间戳:${__time(,)

 jmeter的参数化与函数

 

 jmeter的参数化与函数

 

 

 

时间偏移函数:${__timeShift(,,,,)}

jmeter的参数化与函数

 

 

 jmeter的参数化与函数

 

 

 

1.1.9.  加法函数

只能做两位整数加法函数:${__intSum(,,)}

 jmeter的参数化与函数

 

 

  

1.1.10.  浮点相加函数

浮点数相加函数:${__doubleSum(,,)}

 jmeter的参数化与函数

 

 

 

1.1.11.  Sql执行函数

Sql执行函数:${__eval()}

 jmeter的参数化与函数

 

 

  

1.1.12.  简单代码执行函数

简单代码执行:${__groovy(,)}(执行java代码)${__jexl3(,)}(执行python2,js)

 jmeter的参数化与函数

 

 jmeter的参数化与函数

 

1.1.13.  函数属性

属性函数:${__P(,)}、${__property(,,)}(获取属性)${__setProperty(,,)}(设置属性)

jmeter的参数化与函数

 

 jmeter的参数化与函数

 

 jmeter的参数化与函数

 

 

1.1.14.  随机字母函数

随机字母:${__RandomString(5,dew43532,)}

 jmeter的参数化与函数

 

  

1.1.15.  拼接V函数(重点)

拼接函数V函数:${__V(,)}

使用场景:定义变量phone_1,phone_2,phone_3,在循环时依次获取这三个变量的值

 jmeter的参数化与函数

 

 jmeter的参数化与函数

 

 

 

上一篇:分库分表ShardingSphere<四> _ 读写分离


下一篇:jmeter插件管理器下载报403 Forbidden