Jmeter(七)关联之JSON提取器

如果返回的数据是JSON格式的,我们可以用JSON提取器来提取需要的字段,这样更简单一点

  • Variable names:保存的变量名,后面使用${Variable names}引用
  • JSON Path  expressions:调试通过的json path表达式
  • Match Numbers:匹配数字(0代表随机,1代表第一个,-1代表所有)
  • Default Values:找不到时默认值,一般设置为NOT FOUND
  • Compute concatenation var(suffix_ALL):是否统计所有,即将匹配到的所有值保存,名为“变量名_ALL”

示例:

请求URL:https://fe-api.zhaopin.com/c/i/sou?pageSize=60&cityId=765&workExperience=-1&education=-1&companyType=-1&employmentType=-1&jobWelfareTag=-1&kw=%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95&kt=3

返回的数据格式:

{"code":200,"data":{"numFound":5679,"numTotal":1000,"results":[{"applyType":"1","updateDate":"2019-02-18 08:59:47","refreshMulscore":"0.0","g_sort":"sort-ps-score-ranking-keyword","endDate":"2019-03-20 08:59:47","city":{"display":"深圳-南山区","items":[{"code":"765","name":"深圳"},{"code":"2039","name":"南山区"}]},"showLicence":0,"saleType":100,"positionURL":"https://jobs.zhaopin.com/CC120837247J00254874105.htm","g_weight":101,"industry":"160000,160400, 300100, 160200","welfare":["五险一金","周末双休","绩效奖金","全勤奖","带薪年假"],"salary":"8K-16K","SOU_POSITION_ID":"CC120837247J00254874105","duplicated":0,"geo":{"lon":"113.937987","lat":"22.523392"},"score":20.695484,"number":"CC120837247J00254874105","vipLevel":1003,"recruitCount":1,"workingExp":{"code":"510","name":"5-10年"},"companyScore":0,"tagIntHighend":0,"company":{"number":"CZ120837240","size":{"code":"3","name":"100-499人"},"name":"深圳市利谱信息技术有限公司","type":{"code":"5","name":"民营"},"url":"https://company.zhaopin.com/CZ120837240.htm"},"seo":"0","jobType":{"display":"IT质量管理/测试/配置管理,软件测试","items":[{"code":"160400","name":"IT质量管理/测试/配置管理"},{"code":"695","name":"软件测试"}]},"g_query":"query-ps-score-1","resumeCount":46,"createDate":"2019-02-18 08:59:47","jobName":"中高级测试工程师","manualScore":"0.0","eduLevel":{"code":"4","name":"本科"},"companyLogo":"","futureJob":false,"emplType":"全职","g_source":"source-solr-position","SOU_POSITION_SOURCE_TYPE":1,"recentAndTotal":{"applyTotal":"46","exposureTotal":"2350","clickTotal":"231","exposureRecent":"0","clickRecent":"0","applyRecent":"0"},"tags":[],"businessArea":"科技园","positionLabel":"{\"qualifications\":null,\"chatWindow\":20,\"jobLight\":[\"五险一金\",\"周末双休\",\"绩效奖金\",\"全勤奖\",\"带薪年假\",\"弹性工作\",\"节日福利\",\"员工旅游\"],\"role\":null,\"companyTag\":null,\"level\":null,\"refreshLevel\":0,\"skill\":[\"应用底层 \",\"熟悉网路知识\",\"软件功能测试\",\"网络设备测试\"]}","expandCount":0,"jobTag":{"searchTag":"应用底层 ,熟悉网路知识,软件功能测试,网络设备测试,五险一金,周末双休,绩效奖金,全勤奖,带薪年假,弹性工作,节日福利,员工旅游"},"feedbackRation":0.4557,"interview":0,"selected":false,"applied":false,"collected":false,"isShow":false,"timeState":"最新","rate":""},{"applyType":"1","updateDate":"2019-02-18 14:02:38","refreshMulscore":"0.0","g_sort":"sort-ps-score-ranking-keyword","endDate":"2019-03-13 14:55:38","city":{"display":"深圳","items":[{"code":"765","name":"深圳"}]},"showLicence":0,"saleType":100,"positionURL":"https://jobs.zhaopin.com/CC143316927J00059803005.htm","g_weight":101,"industry":"160400,160000,180000","welfare":["五险一金","员工旅游","加班补助","交通补助","餐补"],"salary":"6K-10K","SOU_POSITION_ID":"CC143316927J00059803005","duplicated":0,"geo":{"lon":"114.070226","lat":"22.556923"},"score":20.717499,"number":"CC143316927J00059803005","vipLevel":1003,"recruitCount":3,"workingExp":{"code":"103","name":"1-3年"},"companyScore":0,"tagIntHighend":0,"company":{"number":"CZ143316920","size":{"code":"5","name":"1000-9999人"},"name":"深圳市赢时胜信息技术股份有限公司","type":{"code":"5","name":"民营"},"url":"https://company.zhaopin.com/CZ143316920.htm"},"seo":"0","jobType":{"display":"IT质量管理/测试/配置管理,软件测试","items":[{"code":"160400","name":"IT质量管理/测试/配置管理"},{"code":"695","name":"软件测试"}]},"g_query":"query-ps-score-1","resumeCount":68,"createDate":"2019-02-11 14:55:38","jobName":"测试工程师","manualScore":"0.0","eduLevel":{"code":"4","name":"本科"},"companyLogo":"","futureJob":false,"emplType":"全职","g_source":"source-solr-position","SOU_POSITION_SOURCE_TYPE":1,"recentAndTotal":{"applyTotal":"68","exposureTotal":"3698","clickTotal":"218","exposureRecent":"0","clickRecent":"0","applyRecent":"0"},"tags":[],"businessArea":"莲花一村","positionLabel":"{\"qualifications\":null,\"chatWindow\":10,\"jobLight\":[\"五险一金\",\"员工旅游\",\"加班补助\",\"交通补助\",\"餐补\",\"通讯补助\"],\"role\":null,\"companyTag\":null,\"level\":null,\"refreshLevel\":1,\"skill\":null}","expandCount":0,"jobTag":{"searchTag":"五险一金,员工旅游,加班补助,交通补助,餐补,通讯补助"},"feedbackRation":0.1269,"interview":0,"selected":false,"applied":false,"collected":false,"isShow":false,"timeState":"最新","rate":""}],"debugInfo":null,"loginfo":null,"facets":[],"extend":"","method":"","taskId":"0a58fc153a9f4fcc9ccefd399e079156","scores":null,"elapsed":["gateway 内部执行耗时117毫秒","gateway 调用总耗时0毫秒","psapi 共耗时135毫秒"],"time":"2019-02-18 18:34:18"}}

现在我们来提取职位的positionURL字段:

1、在查看结果树中通过JSON Path Tester来调试json path

2、添加JSON提取器,设置正确的参数,获取第一个positionURL

输出结果:

3、获取所有的positionURL

输出结果:

4、把所有的positionURL放到一个字段中

输出结果:

5、一次性提取多个字段,比如我们要提取第一个职位的jobName;salary;positionURL三个字段

输出结果:

Json Path表达式:


JsonPath


描述


$


根节点


@


当前节点


.or[]


子节点


..


选择所有符合条件的节点


*


所有节点


[]


迭代器标示,如数组下标


[,]


支持迭代器中做多选


[start:end:step]


数组切片运算符


?()


支持过滤操作


()


支持表达式计算

原文地址:https://www.cnblogs.com/eastonliu/p/10397903.html

时间: 2024-08-29 09:16:07

Jmeter(七)关联之JSON提取器的相关文章

Jmeter(5)JSON提取器

Jmeter后置处理器-JSON提取器 JSON是一种轻量级数据格式,以“键-值”对形式组织数据. JSON串中{}表示对象,[]表示对象组成的数组.对象包含多个“属性”:属性值,属性值可以是值.数组.对象. JSON提取器用json path表达式匹配.S表示根对象,取子对象或者对象的属性用.  取数组对象用[],数组索引从0开始 规则: 1.整个响应是个数组(数据用[]括起来),其中有N个对象,那么取值用$[索引].属性值,索引为0到N-1,表示第几个对象,取值用$[*].属性值取所有值 2

JMeter通过正则表达式、JSON提取器获取变量

??使用Jmeter开发测试脚本的过程中,经常需要对响应结果进行提取变量,本文就介绍两种经常用到的方法,一种是正则表达式提取器,一种是JSON提取器??本次介绍一种经常用到的业务场景,首先登录获取Token,然后将获取的Token赋予到HTTP信息头,供其它接口调用 一.JSON提取器 JSON提取器是专门用来对返回的响应结果是application/json格式的报文进行提取,如下所示 首先在需要提前变量的HTTP请求点击右键>添加>后置处理器>JSON提取器 JSON提取器,变量应用

Jmeter之JSON提取器获取数组类型的数据

前言 在之前,我们已经学会了Jmeter的JSON提取器提取某个数据,还没掌握的小伙伴可以翻看我之前写的随笔Jmeter之JSON提取器,今天我们来学习一下怎么利用JSON提取器获取数组类型的数据,多用于列表信息数据的获取. 本章知识考察点 jsonpath方式获取的值 单个值怎么获取? data.files[索引].filed 多个指定的值怎么获取? data.files 0与-1的设置有什么区别? 0表示随机值,-1表示所有的值 一:先添加登录http请求,然后再添加获取文件列表http请求

性能测试五:jmeter进阶之后置处理器(正则、json提取器)

如,从get返回的json中提取stock的值 作为post的请求参数 1.JSON提取器 专门对json数据进行提取的后置处理器 Debug Sampler:记录之前的请求的所有参数及数据 2.正则表达式提取器 可以通过正则表达式来获取http请求返回的数据 引用名称:匹配后的结果,保存到一个参数中,如param 正则表达式:支持正则表达式的语法,用()来进行分组,指定要获取的内容,如":(.+?), 模板:$1$表示取匹配到的第一组数据,$2$为第二组 匹配数字:当某组数据中包含多少个参数时

jmeter获取响应数据中参数值的常用方式(JSON提取器 、正则表达式提取器 、XPath提取器 、Bean Shell PostProcessor)

JSON提取器: XPath提取器: 返回数据格式是HTML的时候,选择使用此种方式. 正则表达式提取器: 图中Field to check勾选的是Response Headers,获取的是请求头里的参数值. Bean Shell PostProcessor脚本获取方式: 原文地址:https://www.cnblogs.com/zeqi666/p/10245454.html

jmeter中用json提取器提取响应数据中的多个值

json串 []表示对象组成的数组,{}表示对象. 对象里包含多个 "属性":属性值.属性值可以是值,或数组,或对象. JSON Extractor使用json path表达式匹配,可以一次取多个变量值.$表示响应的根对象.取子对象或对象的属性用.  取数组里的对象用[],数组索引从0开始. 示例: 例1  找一个响应结果是json格式的,分析响应结果. 比如下面的响应整个是个数组,其中有4个对象.因此取值用$[索引取0-3或*取所有].属性值 例2  如果响应类似{"属性&

jmeter后置处理器之Json提取器详解

此提取器用于提取请求返回结果中的某个值或者某一组值,用法比正则表达式要简单,标准写法为$.key,其中key为返回结果map中的一个键,如果是多层则继续用.key进行即可,如果遇到key的value值为一个List,则使用.key[n],其中n为list中元素的编号,如下使用实例来说明下如何使用: 如上示例为单元素获取方法,如果要获取多个元素,则参数名称写多个,用逗号分开:而json提取器语法用分号隔开,应当与参数名称一一对应:匹配编号一样的需要用分号隔开,与参数名称一一对应:默认值同样用分号隔

Jmeter之JSON提取器

前言 很多接口都有相互的依赖性,登录接口需要依赖上一个注册接口的返回参数作为入参,今天我们来学习一下JSON提取器提取接口的返回结果 一:添加登录http请求,写入接口地址和参数,添加监听器-察看结果树,点击运行,查看返回的结果 二:添加后置处理器-JSON提取器,提取data值 三:添加取样器-Debug Sampler 看data的值是否提取到. token为data值的变量名,data值已经成功提取 原文地址:https://www.cnblogs.com/zhangwuxuan/p/12

jmeter json提取器提取某个属性的所有值

json 提取器各字段说明: Variable names:保存的变量名,后面使用${Variable names}引用 JSON Path  expressions:调试通过的json path表达式 Match Numbers:匹配数字(0代表随机提取,1代表提取第一个,-1代表提取所有) Default Values:找不到时默认值,一般设置为NOT FOUND Compute concatenation var(suffix_ALL):是否统计所有,即将匹配到的所有值保存,名为“变量名_