Jmeter之参数传递的三种方式

(一)从CSV文件读取要批量输入的变量

1.使用组件:配置元件->CSV Data Set Config

2.组件位置:放在所服务请求前

3.组件说明:

  • 文件名:指向CSV配置文件的路径(包含文件名)。
  • 文件编码:CSV文件默认的编码是UTF-8。
  • 变量名称:和CSV的列相对应,名称自定义(没有拿中文当变量的说法)
  • 忽略首行:通常情况下,CSV的文件首行标注数据的含义,所以要设置忽略,如果不忽略的话,就从第一行来读取。
  • 分割符:默认的英文逗号
  • 是否允许带引号:字面意思,如果你的CSV中是有JSON数据,或者带有引号的数据,建议设为True
  • 遇到文件结束符再次循环:字面意思,一般情况下读取所有数据之后就可以结束了,如果是想重复利用数据,这里可以设置为True,多次循环。(操作的数据不是线程)
  • 遇到文件结束符停止线程:字面意思,配置文件读取完毕之后,就结束当前线程。(操作的线程)
  • 线程共享模式:看想让这个CSV数据文件作用范围是哪里。

4.变量引用

JMeter产生变量的方式有很多种,但是引用变量的方式只有一种: ${变量名}

 
例如:上面的CSV读取产生的变量名:login_name
引用的时候就是:
${login_name}

5.实例

添加变量:

引用变量:

(二)利用Cookie进行值的传递

(三)利用正则提取器/json提取器提取上一个接口的返回数据作为下个请求的输入

一、正则提取器

1、正则提取器组件说明

  • 引用名称:存储匹配结果的变量名称,可以是一个值也可以是一组值
  • 正则表达式:匹配的正则表达式,正则表达式里面可以有多个正则
  • 模板:正则表达式提取器类型,样式为:$n$,模板可自由组合,拼接组成新的字符串内容。
  •  模板为$0$,则为整个表达式匹配到的内容;
  •  模板为:$1$,则对应正则表达式中的第一个小括号内()匹配的内容;
  •  模板为$2$,则对应正则表达式中的第二个小括号()匹配的内容;
  •  模板为$1$$2$,则把2个()所匹配的内容拼接起来,$1$aa$2$拼接两个变量的内容,并在中间加上aa
  •  匹配数字:-1代表取全部数据,0代表随机取值,1代表取第1个数据,2代表取第2个数据
  •  缺省值:找不到匹配时的值

2、实例

①添加组件

 ②设置组件

 ③引用变量

二、json提取器

1.json提取器组件说明

  •  变量名:存储提取的变量名字
  •  Json Path Expressions:Json Path 表达式
  •  Match Numbers: 匹配的数量,0代表随机获取,1代表获取第1个数据,-1代表获取所有数据
  •  Compute concatenation var (suffix_ALL):是否统计所有,即将匹配到的所有值保存为变量_ALL。
  •  Default Values: 没有匹配值时的提示信息
  • Json Extractor 提取到的值会存储在变量里,使用方法和普通变量一样,通过${}引用Json Extractor 的变量即可。Json Extractor存储的变量名是基于提取器中变量名称扩展的,建议通过添加DebugSampler获取Json Extractor实际存储值的变量名。

2.实例

①目标数据

②添加组件

 

 ③配置组件

 ④引用参数

同线程引用

跨线程引用

1. 传递变量说明

1.1 传参方式

现在大家在用自己公司的接口做操作的时候需要传递token,很不方便,所以把传递token的打卡提到前面,可能有点难度,慢慢来,有问题留言或者到星球提问,需要用到beanshell解释器

1.1.1 内置变量

 
//同线程组
vars :操作 jmeter 变量,它是测试用例与 BeanShell 交互的桥梁,常用方法:
vars.get(String key):从jmeter 中获得变量值
vars.put(String key,String value):数据存到 jmeter 变量
//跨线程组
props :操作 jmeter 属性,该变量引用了 JMeter 的配置信息,可以获取Jmeter
的属性,它的使用方法与 vars 类似,但是只能 put 进去 String 类型的值,而不能是一个对象。
props.get("START.HMS");START.HMS 为属性名,在jmeter.properties 中定义
props.put("PROP1","1234");

1.1.2 函数助手

 
声明全局变量:
${__setProperty(newtoken,${token},)}
引用全局变量
${__P(newtoken,)}

1.2 传参形式

1.2.1 同线程组

 
//示例1.beanshell语句
String str =vars.get("loginName");//获取变量loginName
vars.put("key",str);//抛出做线程组内变量
//其他
默认的变量都在本线程组下使用

1.2.2 跨线程组

 
//示例1.beanshell语句
String str =vars.get("token");
props.put("newToken",str);
//示例2.函数助手
${__setProperty(newtoken,${token},)}
//跨线程组引用变量的方式
${__P(newtoken,)}//只需要变量名就可以

配置元件之CSV数据文件配置

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值