【Jmeter5.1】jmeter参数化的种种方式(用户参数、函数助手、CSV、用户自定义变量、跨线程属性、HTTP请求默认值)、首次获取为空的情况

目录

一、【前置处理器-用户参数】

二、【配置原件-用户自定义变量】

三、【配置元件-CSV Data Set Config(CSV 数据文件设置)】

四、【函数助手-__RandomString]

五、全局变量的设置与调用(token参数化,跨线程传递)【两种方式】

​编辑

六、【函数助手--__CSVRead】

如果CsvRead 使用单线程-多循环,上面的操作只会读取到第一行的数据,需要加:${__CSVRead(D:/project/jmx/jmx_csv_data/csv_dt.csv,next())}

七、备注:在第二个线程中需要在请求之前添加一个定时器,因为不添加时,默认第一个请求获取的全局变量为空


继:【Jmeter5.1】jmeter的正则表达式提取器的应用说明_白骨梦儿-CSDN博客_jmeter正则表达式提取器怎么使用

目录

一、【前置处理器-用户参数】

二、【配置原件-用户自定义变量】

三、【配置元件-CSV Data Set Config(CSV 数据文件设置)】

四、【函数助手-__RandomString]

五、全局变量的设置与调用(token参数化,跨线程传递)【两种方式】

​编辑

六、【函数助手--__CSVRead】

如果CsvRead 使用单线程-多循环,上面的操作只会读取到第一行的数据,需要加:${__CSVRead(D:/project/jmx/jmx_csv_data/csv_dt.csv,next())}


jmeter中可以称作为参数化的方式有很多,下面我们种种简单举例:

一、【前置处理器-用户参数】

备注:如果jmeter中,用户参数组件、用户自定义参数组件都定义了同样变量,以用户自定义参数失效,以用户参数为主;

(适用于数据量少的情况)需要结合多线程取值(取不同的值),而不是多循环(始终取到一个值,起不到参数化的作用);

下面,以注册jforum会员为例子:

在需要使用参数的接口,使用:${参数名称},结果即可取出不同值;如图:

二、【配置原件-用户自定义变量】

(效果不如“用户参数”)一个变量设置一个值,比“写死”好,可实现多个sample共用一个变量的值,即便是数据变化了,也只需修改一个自定义变量的值;而不需在jmx文件中找多个接口修改……;例如:设置的IP、PORT 结合HTTP请求默认值一起使用。

三、【配置元件-CSV Data Set Config(CSV 数据文件设置)】

(常用方式,适用txt、dat文件),至于excel格式,本人还弄不来;

准备的数据,需注意,最后一样不要空行:

四、【函数助手-__RandomString]

(适用于生成随机字符串)

__RandomString函数配置:

使用方式,将上面函数助手中生成的表达式复制粘贴

同理,类似的函数还要:__Random  、__RandomData

另外,__RandomFromMultipleVars(variable1|variable2|variable3):可结合【用户自定义变量】使用,表示:在variable1、variable2、variable3变量中随机取一个;

五、全局变量的设置与调用(token参数化,跨线程传递)【两种方式】

【Jmeter5】SampleResult、ResponseCode、ResponseMessage、vars、props、log;beanshell引用jar包;_白骨梦儿-CSDN博客

方式一:使用Beanshell 监听器 设置全局变量,,使用则是:${__P(变量,)} 

String education = vars.get("education");
props.put("education",education);
props.get("education");

 

方式二:使用Beanshell 监听器 获取并设置全局属性,,在使用的线程中,利用Beanshell 前置处理器,拿到并重命名变量,使用则是:${ 变量名}

 在Beanshell预处理器中,

String a = props.get("new_education");
vars.put("new_edu",a);

 

六、【函数助手--__CSVRead】

将生成的函数字符串,复制粘贴到想要取值的地方;

如果CsvRead 使用单线程-多循环,上面的操作只会读取到第一行的数据,需要加:${__CSVRead(D:/project/jmx/jmx_csv_data/csv_dt.csv,next())}

 

七、备注:在第二个线程中需要在请求之前添加一个定时器,因为不添加时,默认第一个请求获取的全局变量为空;

举例:

https://download.csdn.net/download/ak739105231/75659019icon-default.png?t=N7T8https://download.csdn.net/download/ak739105231/75659019

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

冷凝娇

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

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

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

打赏作者

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

抵扣说明:

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

余额充值