性能测试实战(五):参数化+关联

一、变量的定义与引用

1、怎么命名变量名称

建议使用 字母、数字或下划线(不要使用数字开头)

2、用户定义的变量

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

3、用户参数

局部变量,启动脚本时获取一次值,在运行过程中,还会动态获取值

4、引用

${变量名称}

二、函数

函数(双下划线开头+函数名称+小括号+参数间使用英文逗号)

        java中的方法

        Jmeter的函数

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

                扩展函数:需要引入第三方jar包,才能在函数助手中找到和使用,但有些找不到文档

Tools -> 函数助手 -> 选择函数 -> 生成函数

        用法:字符串直接跟上函数 相当于字符串的连接 ,例如 182$...

思考:在做性能测试时,我们要注册用户,每次注册的账号都是不一样的,然后我想要用新注册的账号去登录,我怎么让新注册的账号,能登陆成功?

        实验一:采用用户定义的变量,因为它只获取一次值,但只有第一次成功,但多次使用时,会出现注册不了的情况:

                如果在线程组下面,直接添加用户自定义变量 用户参数 (值使用随机函数,动态生成),实际满足不了要求(用户定义变量注册成功一次,后面的用户登录不了;用户参数注册成功没登陆失败)

        实验二:如果把用户参数放在注册接口下面,则每次注册的账号都不一样,注册都能成功,登录,于注册的账号一致,每次也都能登录成功了  可采用该方式

        实验三:如果把用户定义变量放在注册接口下面,不能满足要求

        实验四:如果把用户参数,放在线程组下面,同时,勾选用户参数中的【每次迭代更新一次】可采用该方式

                每次注册的号码都发生了变化,注册都成功,注册和登录,在一个线程组下面,是1个迭代整体,两个接口都执行完才完成1次完整的迭代,所以,在一个迭代内部,我们注册和登录用户的账号是同一个账号,所以,也能成功

迭代一次  VS  循环一次

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

        循环一次:只是对其内部循环体进行循环,不包含外部循环

1、随机函数 __Random

2、计数器函数 __counter  VS 计数器元件

        只能实现简单加1

        如果想要自定义步长的加减法,需要使用配置原件>计数器元件

        计数器元件

                自定义步长

                设置了最大值,当运行过程中超过了最大值,就会从起始值开始循环

                【与每个用户独立跟踪计数器】每个线程都有自己独立的计数器

3、读取CSV函数  __CSVRead  VS  CSV文件设置

        只能实现简单的读取,不建议使用

4、时间函数 

        (1)时间格式转换  __dateTimeConvert

        (2)随机日期函数  __RandomDate  

        (3)当前时间戳获取  __time

        (4)时间偏移函数  __timeShift

5、加密函数  __digest 

        要实现复杂加密,需要写代码,但不要使用beanshell,因为性能低,请使用jsr223元件

        jsr223支持多种语言,如python2、js、java等

        需要引入加密的算法jar包时,需要开发提供,并放到jmeter的lib文件夹下

6、整数3加法运算 __intSum

7、运行简单代码的函数 __grocvy  VS  __jexl3

8、获取属性函数 __P VS __property 

9、设置属性函数 __setProperty

        属性:.properties结尾的文件

                静态属性

                动态属性

10、拼接函数 __V

        我定义了 user_1 user_2 user_3 三个变量

        我想在脚本中,循环的时候,依次使用这三个变量的值

        可能会想到拼接的方式,如${user_$m},但这种方式不生效

        解决上述问题可以这样使用: ${__V(user_ ${m},)}

三、关联

        1、如果想要从响应信息为json格式的数据中提取出想要的数据,请优先选择json后置处理器

        2、后置处理器,对响应数据进行处理

                常用:json提取器、正则提取器

        3、json表达式

                $ 开头,接上节点名称,多个节点之间用英文 “.” 连接  (绝对值写法)

                $.. 节点名称  (相对路径写法)

        4、关联

        指的是前一个请求的动态响应值,作为后续接口的传入参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Lion King

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

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

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

打赏作者

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

抵扣说明:

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

余额充值