Jmeter 使用Json提取请求数据的方法

目录
  • Json提取器
  • 使用介绍
    • 1,变量名
    • 2,Json表达式
    • 3,Match no
    • 4,默认值
  • 提取变量的后续操作
    • 调试器样本查看变量取值情况
    • Beanshell写变量到文件
    • 遍历提取到的值

使用Json提取器可以提取请求响应数据

Json提取器

位置: 后置处理器-》Json提取器

使用介绍

1,变量名

变量名,其他部分引用方式: ${变量名}
若提取多个变量,多个之间使用分号";"分割

2,Json表达式

$表示响应的根对象
.表示对象的下一级子对象或者属性
取数组加[],数组索引从0开始,*表示数组所有值

若响应结构为:{“code”:200,“resultMessage”:"",“data”:2}
$.data 表示取data这个对象若响应结构为:[{},{},{}]
$[1或者**] 1,2,3表示取数组第几个元素,*表示取所有若响应结构为:{“属性”:[{“sx”:1},{},{}]}
$.属性[0].sx

3,Match no

-1表示匹配所有
0表示随机取值
1表示匹配第一个,2表示匹配第二个
设置变量数量与match no个数要匹配得上,多个提取之间使用;分割

设置为-1时

会提取多个变量,单个变量的引用带具体数值,数字表示提取到的第几个变量。使用方式:${变量名_序列} 序列为1,2,3。。。。

设置为-1时,生成其他相关变量

变量名_matchNr
意思是取到的符合条件的数字个数。可以像使用普通变量一样使用这个_matchNr变量。
变量名_ALL
若是勾选了 计算串联变量(Compute concatenation var(suffix _ALL))则还会生成以_ALL结尾的变量,表示所有变量组合的变量,以分号分割


设置为0或1,2,3等具体数值

取的是单个值,变量的使用是${变量名},不用加序列号

4,默认值

没有匹配上的默认值,取多个值时,可设置多个默认值,多个默认值之间分号分割

提取变量的后续操作

调试器样本查看变量取值情况

查看json提取的数据取值情况

这里debug样本器提取了变量pi 还会生成pi_matchNr变量,表示这个变量提取了多少匹配的值。

Beanshell写变量到文件

beanshell后置处理程序
若是请求之后,提取变量,写文件使用的是beanshell后置处理程序
beanshell取样器
非请求之后写入使用的是beanshell取样器
两种beanshell元件,其中代码暂时没有发现不同

这是使用beanshell写入获取的quo_no的ALL变量quo_no_ALL ,写入文件后取值直接也是带分号的。

遍历提取到的值

变量名为quo_no
match no为-1提取数组对象所有符合值

使用ForEach遍历器遍历获取的所有quo_no

ForEach控制器,从0开始(不包括0),停止循环为 q u o n o m a t c h N r 输 出 变 量 名 设 置 好 q u o o o , 该 控 制 下 调 用 变 量 名 {quo_no_matchNr} 输出变量名设置好quooo,该控制下调用变量名 quon​om​atchNr输出变量名设置好quooo,该控制下调用变量名{quooo}

比如,本脚本是使用beanshell采样器去写文件

除了写文件还可以做其他处理,比如带上提取到的变量继续请求。

到此这篇关于Jmeter 使用Json提取请求数据的文章就介绍到这了,更多相关Jmeter Json提取请求数据内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • jmeter实现接口关联的两种方式(正则表达式提取器和json提取器)

    目录 一.前言 二.使用正则表达式提取器实现接口关联 三.使用json提取器实现接口关联 json提取器的使用步骤 四.扩展:返回复杂json数据的提取 一.前言 在开展接口测试或者是接口面试的过程中,我们会发现很多接口需要依赖前面的接口,需要我们动态从前面的接口返回中提取数据,也就是我们通常说的关联. 关联通俗来讲就是把上一次请求的返回内容中的部分截取出来保存为参数,用来传递给下一个请求使用. 二.使用正则表达式提取器实现接口关联 正则表达式提取器,见名知意就是使用正则表达式的方法把我们需要提

  • jmeter中json提取器如何提取多个参数值

    关于jmeter中的正则表达式及json提取器可以提取响应值,大家都有所了解,但是往往我们在实际运用中,可能需要上个接口的多个响应值,难道我们要在jmeter中添加多个提取器吗?那么我们今天来了解下如何使用json提取器一次性提取多个参数值. json提取器提取多个值 以上是响应数据,我需要把这两个参数都提取出来传给下一个接口的请求,添加json提取器 关于json提取器参数介绍: names of created variables :接收值的变量名,多个变量时用分号分隔 json path:

  • Jmeter 使用Json提取请求数据的方法

    目录 Json提取器 使用介绍 1,变量名 2,Json表达式 3,Match no 4,默认值 提取变量的后续操作 调试器样本查看变量取值情况 Beanshell写变量到文件 遍历提取到的值 使用Json提取器可以提取请求响应数据 Json提取器 位置: 后置处理器->Json提取器 使用介绍 1,变量名 变量名,其他部分引用方式: ${变量名} 若提取多个变量,多个之间使用分号";"分割 2,Json表达式 $表示响应的根对象 .表示对象的下一级子对象或者属性 取数组加[],

  • PHP以json或xml格式返回请求数据的方法

    无论是网页还是移动端,都需要向服务器请求数据,那么作为php服务端,如何返回标准的数据呢? 现在主流的数据格式无非就是json和xml,下面我们来看看如何用php来封装一个返回这两种格式数据的类 我们先定义一个响应类 class response{ } 1.以json格式返回数据 json格式返回数据比较简单,直接将我们后台获取到的数据,以标准json格式返回给请求端即可 //按json格式返回数据 public static function json($code,$message,$data

  • Vue2.5通过json文件读取数据的方法

    1.准备工作 1.1 webpack.dev.conf.js 在 const portfinder = require('portfinder') 的下面加上以下代码 const express = require('express') const app = express() var appData = require('../data.json')//加载本地数据文件的路径 var leftMenu = appData.leftMenu //获取对应的本地数据 var 数据名称 = app

  • vue中promise的使用及异步请求数据的方法

    下面给大家介绍vue中promise的使用 promise是处理异步的利器,在之前的文章<ES6之promise>中,我详细介绍了promise的使用, 在文章<js动画实现&&回调地狱&&promise>中也提到了promise的then的链式调用, 这篇文章主要是介绍在实际项目中关于异步我遇到的一些问题以及解决方法,由此来加深对promise的进一步理解. 背景 进入商品页,商品页的左侧是分类,右侧是具体的商品,一旦进入商品页,就把所有分类的商品

  • Python3 利用requests 库进行post携带账号密码请求数据的方法

    如下所示: import urllib,json,requests url = 'http://127.0.0.1:8000/account/login' headers = {} data = {'username':'asd','pwd':'123456$'} request = requests.post(url=url, data=data,json=True,headers=headers) response = request.content.decode() #需要携带请求头信息的

  • AJAX实现JSON与XML数据交换方法详解

    目录 1.JS中如何创建和访问JSON对象 2.基于JSON的数据交换 3.基于XML的数据交换 1.JS中如何创建和访问JSON对象 (1)在javascript语言中怎么创建一个json对象,语法是什么? "属性名" : 属性值,"属性名" : 属性值.........的格式! 注意:属性值的数据类型随意:可能是数字,可能是布尔类型,可能是字符串,可能是数组,也可能是一个json对象..... <!DOCTYPE html> <html lan

  • php从数据库读取数据,并以json格式返回数据的方法

    php中,从数据库读取数据,并以json格式返回数据.具体方法如下: 第一步,定义相关变量 $servername = "localhost"; $username = "root"; $password = "root"; $mysqlname = "datatest"; $json = ''; $data = array(); class User { public $id; public $fname; public $

  • js利用递归与promise 按顺序请求数据的方法

    问题:项目中有一个需求,一个tabBar下面如果没有内容就不让该tabBar显示,当然至于有没有内容,需要我们通过请求的来判断,但是由于请求是异步的,如何让请求按照tabBar的顺序进行? 方案:我们可以将promise变成下一个请求,可以利用递归来实现 实施: //定义初始数据 requestlist就像tabBar列表 let requestlist = [1, 2, 3, 4, 5, 6, 7,8,9]; //每个tabBar的返回数据使用reslist装起来 let reslist =

  • 在python中使用requests 模拟浏览器发送请求数据的方法

    如下所示: import requests url='http://####' proxy={'http':'http://####:80'} headers={ "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Accept-Encoding": "gzip, deflate, br", "Accept-Lang

随机推荐