当前位置: 首页 > 面试题库 >

JMeter JSON解析

祁雪峰
2023-03-14
问题内容

当响应数据以多余的字符开头时,需要帮助解析JSON。

我可以使用JSON提取查询从示例中提取数据- $.results

**Working example:** 
{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "2300",
               "short_name" : "2300",
               "types" : [ "street_number" ]
            },
            {
               "long_name" : "22201",
               "short_name" : "22201",
               "types" : [ "postal_code" ]
            }
         ]
      }
   ],
   "status" : "OK"
}

但是,我找不到任何合适的方法来从以下JSON对象提取数据:

/**/_xdc_._9l6mlb && _xdc_._9l6mlb( {
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "2300",
               "short_name" : "2300",
               "types" : [ "street_number" ]
            },
            {
               "long_name" : "22201",
               "short_name" : "22201",
               "types" : [ "postal_code" ]
            }
         ]
      }
   ],
   "status" : "OK"
}
)

尝试使用通配符以–来转义JSON对象之前的前导字符,*$.results但没有运气

任何帮助将非常感激


问题答案:

/**/_xdc_._9l6mlb && _xdc_._9l6mlb(一点使您的JSON有点无效。我建议使用JSR223
PostProcessor
和Groovy语言代替:

import groovy.json.JsonBuilder
import groovy.json.JsonSlurper

def response = prev.getResponseDataAsString()

def cleanResponse = response.substring(response.indexOf("{"), response.lastIndexOf(")"))
def jsonSlurper = new JsonSlurper()
def json = jsonSlurper.parseText(cleanResponse)
def results = json.results

def builder = new JsonBuilder(results)

vars.put("results", builder.toPrettyString())

上面的代码将与JSON Path PostProcessor完全相同,并将值存储到${results}JMeter变量中

参考文献:

  • 解析并生成JSON
  • Beanshell,JSR223和Java JMeter脚本:您一直在等待的性能下降!


 类似资料:
  • 本文向大家介绍Java注解Annotation解析,包括了Java注解Annotation解析的使用技巧和注意事项,需要的朋友参考一下 概述        Java在1.5版本引入注解Annotation,又称Java标注,注解是一种语法元数据,可以被直接使用到源代码中,类/方法/变量/参数/包名等都可以被注解。和Javadoc标签不同,编译器在生成class文件时候能够保留注解代码,同时,可能为

  • 请问这个问题如何用mathematica求解析解呢? 微分方程: $$(\frac{\mathrm{d} }{\mathrm{d}\rho } +\frac{1}{\rho} \frac{\mathrm{d}}{\mathrm{d}\rho} )(\frac{\mathrm{d}^2 \omega}{\mathrm{d} \rho^2}+\frac{1}{\rho}\frac{\mathrm{d}

  • plugins/kibana/public/dashboard/index.js 结构跟 visualize 类似,设置两个调用 savedDashboards.get() 方法的 routes,提供一个叫 dashboard-app 的 directive。 savedDashboards 由 plugins/kibana/public/dashboard/services/saved_dash

  • index.js 中,首要当然是注册自己。此外,还加载两部分功能:plugins/kibana/visualize/editor/* 和 plugins/kibana/visualize/wizard/wizard.js。然后定义了一个 route,默认跳转 /visualize 到 /visualize/step/1。 editor editor.js 中也定义了两个 route,分别是 /vi

  • 前文已经说到,kibana.js 中依次加载了各主要功能模块的入口。比如搜索页是 src/core_plugins/kibana/public/discover/index.js。通过这个文件路径就可以猜到,有关搜索页的功能,代码应该都在 src/core_plugins/kibana/public/discover/ 里了。这个目录下的文件有: _hit_sort_fn.js component

  • Milo Yip 2016/11/15 本文是《从零开始的 JSON 库教程》的第六个单元解答篇。解答代码位于 json-tutorial/tutorial06_answer。 1. 重构 lept_parse_string() 这个「提取方法」重构练习很简单,只需要把原来调用 lept_set_string 的地方,改为写入参数变量。因此,原来的 lept_parse_string() 和 答案

  • Milo Yip 2016/10/13 本文是《从零开始的 JSON 库教程》的第五个单元解答篇。解答代码位于 json-tutorial/tutorial05_answer。 1. 编写 test_parse_array() 单元测试 这个练习纯粹为了熟习数组的访问 API。新增的第一个 JSON 只需平凡的检测。第二个 JSON 有特定模式,第 i 个子数组的长度为 i,每个子数组的第 j 个

  • Milo Yip 2016/9/20 本文是《从零开始的 JSON 库教程》的第二个单元解答篇。解答代码位于 json-tutorial/tutorial02_answer。 1. 重构合并 由于 true / false / null 的字符数量不一样,这个答案以 for 循环作比较,直至 ''。 static int lept_parse_literal(lept_context* c, le