ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

jmeter的参数化与函数

2022-02-07 18:35:02  阅读:177  来源: 互联网

标签:__ 函数 用户 参数 线程 jmeter 变量 1.1


1.1.1.  变量的定义与引用

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

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

引用:${变量名}

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

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

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

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

 

1.1.2.  函数介绍与概念

 

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

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

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

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

 

 

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

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

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

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

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

 

 

 

 

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

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

 

 

 

 

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

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

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

  

 

 

 

 

函数概念: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

 

 

 

 

 

   

1.1.4.  计数器函数

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

 

 

 

 

 

 

1.1.5.  线程数函数

线程数函数:${__threadNum}

 

 

 

1.1.6.  计数器元件

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

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

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

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

 

 

 

 

1.1.8.  时间函数

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

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

 

 

 

 

 

 

 

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

 

 

 

 

 

 

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

 

 

 

 

 

 

1.1.9.  加法函数

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

 

 

 

  

1.1.10.  浮点相加函数

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

 

 

 

 

1.1.11.  Sql执行函数

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

 

 

 

  

1.1.12.  简单代码执行函数

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

 

 

 

 

1.1.13.  函数属性

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

 

 

 

 

 

 

1.1.14.  随机字母函数

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

 

 

  

1.1.15.  拼接V函数(重点)

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

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

 

 

 

 

 

 

标签:__,函数,用户,参数,线程,jmeter,变量,1.1
来源: https://www.cnblogs.com/xueqiao/p/15868795.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有