Jmeter常用获取数据的几种方式

发表于:2021-11-04 09:50

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:二号猎人    来源:CSDN

  Jmeter互联网测试中应用非常多,可以用来做接口测试或者性能测试,算是非常不错的一个工具。今天我们简单介绍下Jmeter获取数据的几种方法。
  1、手动写入
  所有可以固定的参数,我们都可以通过手动写入的方式。例如:HTTP信息头管理器中的Content-Type的值是application/json,通过手动写入的方式来获得数据。
  2、正则表达式提取器
  对于前后接口有关联,需要将前一个接口的返回值做为后一个接口的请求参数。对于这种参数,我们没有办法提前写入。为了整个项目的连贯性,所以我们需要用到正则表达式提取器来提取前一接口的返回值,然后传递给下一接口。
  要检查的响应字段:根据实际选择。引用名称:即后面使用要引用的变量名字。
  正则表达式:用于将需要的数据提取出来。模板: 表示要提取第几个值,$1$,1表示第一个,$2$,2表示第二个。匹配数据: 0表示随机,1表示全部。缺省值:匹配不到的默认值。
  例如:前面一个接口是创建订单,从返回值中得到orderId。现在测试取消这个订单,需要orderId,我们用正则表达式提取器提取出来,可以直接拿来使用。使用方法如下${变量名}
  3、Json提取
  对于前后接口有关联,需要将前一个接口的返回值做为后一个接口的请求参数。对于这种参数,我们没有办法提前写入。为了整个项目的连贯性,所以我们需要用到Json提取器来提取前一接口的返回值,然后传递给下一接口。
  Names of created variables,写入变量名,多个变量名用英文分号分隔。JSON Path中写入json的格式,多个格式用英文分号分隔,例如:$.data.id
  例如:前面一个接口是创建订单,从返回值中得到orderId。现在测试取消这个订单,需要orderId,我们用正则表达式提取器提取出来,可以直接拿来使用。
  4、读取文件
  CSV Data Set Config可以从指定文件中读取数据,filename即文件路径,Variable Names即做为变量名。如果有多列就写多个,逗号隔开。
  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即要传递的变量名。查询结果的数据是数组,变量值需要带下标。
  6、使用随机数和计数器
  在配置元件中的随机变量和计数器,非常好用。随机变量控件中,输入最大和最小值,变量名称和输出格式。计数器空间中,输入最大和最小值,递增频率和引用名称。
  7、用时间戳做为变量
  有时候随机数可能不能满足我们对于参数的要求,我们可以采用时间戳+随机数的方式,大大减低数据重复的可能性。
  ${__time(,)} : 默认该公式精确到毫秒级别, 13位数
  8、返回值存入文件再使用
  前面我们说了采用正则表达式提取器和json提取器来传递参数,能满足我们大部分场景,当使用场景如下时就会显得不那么好用了:在压力测试时,我们需要每个用户都是登录情况下操作。如果我们在前面调用登录接口,势必大大影响整个系统的处理能力,这样不能能客观得到接口的性能。
  我们可以采用如下处理方式,在setUp线程组中批量注册或者登陆一批用户(当然总数是够跑一次测试的),把他们的登录信息存入一个文档。在主线程组中再把他们从文件中读取处理,放入headers中,执行下单请求测试。

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号