jmeter正则表达式提取器_Jmeter常用获取数据的几种方式

Jmeter在互联网测试中应用非常多,可以用来做接口测试或者性能测试,算是非常不错的一个工具。今天我们简单介绍下Jmeter获取数据的几种方法。

1、手动写入

所有可以固定的参数,我们都可以通过手动写入的方式。例如:HTTP信息头管理器中的Content-Type的值是application/json,通过手动写入的方式来获得数据。

2、正则表达式提取器

对于前后接口有关联,需要将前一个接口的返回值做为后一个接口的请求参数。对于这种参数,我们没有办法提前写入。为了整个项目的连贯性,所以我们需要用到正则表达式提取器来提取前一接口的返回值,然后传递给下一接口。

aceca288b7e7f1ffeb5b8542f31ea112.png

要检查的响应字段:根据实际选择。引用名称:即后面使用要引用的变量名字。

正则表达式:用于将需要的数据提取出来。模板: 表示要提取第几个值,$1$,1表示第一个,$2$,2表示第二个。匹配数据: 0表示随机,1表示全部。缺省值:匹配不到的默认值。

例如:前面一个接口是创建订单,从返回值中得到orderId。现在测试取消这个订单,需要orderId,我们用正则表达式提取器提取出来,可以直接拿来使用。使用方法如下${变量名}

3、Json提取

对于前后接口有关联,需要将前一个接口的返回值做为后一个接口的请求参数。对于这种参数,我们没有办法提前写入。为了整个项目的连贯性,所以我们需要用到Json提取器来提取前一接口的返回值,然后传递给下一接口。

8d93e151456a46634167404b74ceecdd.png

Names of created variables,写入变量名,多个变量名用英文分号分隔。JSON Path中写入json的格式,多个格式用英文分号分隔,例如:$.data.id,

例如:前面一个接口是创建订单,从返回值中得到orderId。现在测试取消这个订单,需要orderId,我们用正则表达式提取器提取出来,可以直接拿来使用。使用方法如下${变量名}

4、读取文件

CSV Data Set Config可以从指定文件中读取数据,filename即文件路径,Variable Names即做为变量名。如果有多列就写多个,逗号隔开。

ae9b5ad37e67815d76b3b5960abfe01d.png

5、数据库查询

在有些使用场景,我们需要去数据库中查询一些数据。这个时候我们就要用到JDBC Connection Config及JDBC Request。

JDBC Connection Config负责连接数据库,JDBC Request负责查询。

JDBC Connection Config的设置中Variable Name与JDBC Request中保持一致,正确填写Database URL, Username,Password,这样可以和数据库建立连接。

JDBC Request中Variable Name与前面一致。SQL Query中输入要执行的SQL语句。Variable Name即要传递的变量名。查询结果的数据是数组,变量值需要带下标。

fe5208c2d236017c76b4d722ebd8d6a4.png

521ec0f94042cfd0eb17ede2f1562d4f.png

6、使用随机数和计数器

在配置元件中的随机变量和计数器,非常好用。随机变量控件中,输入最大和最小值,变量名称和输出格式。计数器空间中,输入最大和最小值,递增频率和引用名称

f78d95451a867bbf2e73e57569c6bdb1.png

46de5a459cc952f87856c0a7729ba5c1.png

7、用时间戳做为变量

有时候随机数可能不能满足我们对于参数的要求,我们可以采用时间戳+随机数的方式,大大减低数据重复的可能性。

${__time(,)} : 默认该公式精确到毫秒级别, 13位数

8、返回值存入文件再使用

前面我们说了采用正则表达式提取器和json提取器来传递参数,能满足我们大部分场景,当使用场景如下时就会显得不那么好用了:在压力测试时,我们需要每个用户都是登录情况下操作。如果我们在前面调用登录接口,势必大大影响整个系统的处理能力,这样不能能客观得到接口的性能。

我们可以采用如下处理方式,在setUp线程组中批量注册或者登陆一批用户(当然总数是够跑一次测试的),把他们的登录信息存入一个文档。在主线程组中再把他们从文件中读取处理,放入headers中,执行下单请求测试。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值