jmeterjson(jmeterjson提取器参数后拼接)

本篇文章给大家谈谈jmeterjson,以及jmeterjson提取器参数后拼接对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

jmeter之json提取器

接口测试中,经常会遇到,某个请求的参数需要从上一个接口的返回数据中档大提取,那么这时候我们就需要用到j提取器了。最常见的是json提取器,下面就来介绍下json提取器的常见使用方法。

Apply to: 应用范围。一般使用默认的即可

Names of created variables :变量名称,提供给其它控件引用。这个自定义,多个参数用分号隔开。匹配到单个值可直接引用,如${id};若是匹配敬蠢告到多个值,需要使用第n个值时则带上下坐标,如第3个为亮明 ${id_3}

JSON Path expression: 从json响应中提取内容的表达式,其中$代表根元素,.id表示从根元素往下找到id,匹配所有值用 [*],如$.[*].id,匹配第n个值用     $.[n].id

Match No.(0 for Random): 0代表随机选择一个,-1代表提取所有值,n表示提取匹配的第n个值,如“1”表示提取匹配到的第1个值

Compute concatenation var(suffix_ALL): 创建一个${foo_ALL}包含所有提取值的串联的变量,即将提取的值组成一个list返回

Default Values: 缺省值,匹配不到值时使用该值,也可以写error

业务场景: 登录后提取accessToken(即下图中的id),当做后面的请求的参数,返回和提取方式如下

注:因为这里只返回了一个id,所以表达式使用$.id,下面的Match No.(0 for Random) 为空即可

业务场景: 匹配返回体中所有的“id”,0代表随机提取一个,需要指定提取第n个,将0改为n即可

这里指定提取还有另一种写法:$.[n].id

业务场景: 匹配返回体中所有的“tpye”和“id”,添加一个Debug PostProcessor,可查看提取的结果。

使用: 使用id和type的第n个值,${element_n} 、${tpye_n},使用返回值数量:${elementId_matchNr}

[img]

Jmeter 解析json文件(多条件获取数组中某个节点的值)

使用jmeter做接口测试时,经常会要获取json文大简册件中数组中某个相同节点的值。如下述json文件

想要获取claimLabors节点下claimEstimateItemName="前保险杠骨架"且operationType= "03"的partNo。

分析:

1、jmeter中要想获取到claimLabors节点下claimEstimateItemName="前保险杠骨架"且operationType= "03"的partNo值,必须要解析该json文件。所以需要在beanshell中使用第三方jar包,则先要在idea中新建工程jmeterTool

2、在idea中新建工程jmeterTool,并新增类:JsonUtil

这里提供两种方法获取partNo的值。

方法一:通过jsonpath获取partNo的值。

方法getJsonVal得到一个list返回值,因为是某一个具体的值,所以直接使用substring截取[]内的内容即可。

方法二:通过jsonpath获取partNo所属数组的整个节点,再通过map获取partNo的值。

方法getJsonNode得到一个listMap对象,因为是list里只有一个对象,所以使用list.get(0)获取到map,再通过map.get("任意字段名称")即可获取对应的值。

上述main方法中的滚宏测试,是为了方便后续打jar包。

这里解析json,用到json-path包,所以在工程中需要导入该包:

3、将上述工程打成咐哗jar包。

打完包后,进入到包所在的路径下,结构如下:

如果不是上述内容,需要修改一下(将工程的META-INF目录下MANIFEST.MF文件中的内容复制过来即可)。否则cmd测试时会提示:没有**主清单..

4、将打的包放到jmeter安装目录的lib\ext文件夹下

5、打开jmeter,在对应脚本的beanshell中引入该包中的JsonUtil类并调用

ok了。

jmeter中怎么获取返回结果json

1.在请求里面添加后置处理器"jp@gc - JSON Path Extractor"

2.在"Destination Variable Name"中填入在jmeter中引用的变量

3.在"JSONPATH Expression"中填入你需要取出json串中某一个值(例:json串为"{"shortUrl":"","longUrl":"","ifSuccess":"Y"}"要提取其中的纯睁ifSuccess的值则"JSONPATH Expression"中填入$.ifSuccess)

4.在Default Value中填入如果在"JSONPATH Expression"中没有取到json的好携值 则返回做袜岁一个默认的值

jmeter提取json数据进行接口参数关联

案例场景:在测试创建订单使用系统的企业支付时,需要获取到创建订单后的订单编号才能支付,在jmeter里面可以直接提取上一个接口json里面的值(sysno)作为下一个支付接口的入参。我现在有一个创建订单接口A,创建成功后会返回一个sysno值。企业支付请雀正求接口B必须要获取到接口A返回订单编号才能支付。这里介绍一下jmeter使用后置处理器【json extractor】获取你想要得到的值,根据上一个接口具体返回的json格式去自定义【json path expressions】json路径表达式。

A接口创建订单接口文档基本信息

请求类型:POST

请求头部:application/json

请求参数:[{"soType":0,"distributorSysNo":100001,"receiverInfo":{"receiveAddress":"收货地址","receiveAreaSysNo":2620,"receiveContact":"联系人","receivePhone":"15878788784"},"products":[{"productSysNo":42753,"quantity":2,"memo":null,"expectDeliveryDate":null},{"productSysNo":41681,"quantity":1,"memo":null,"expectDeliveryDate":null},],"customerMemo":客户备注信息,"deliveyType":54}]

A接口的请求和返回的报文信息如下

B接口企业支付的接口文档基本信息

请求类型:POST

请求头部:application/json

请求参数:{"orderSysNos":["${ordersysno}"],"soSysNo":"${ordersysno}","payTypeId":"balancepay","orderType":0,"balancePwd":"123456"正岁余}

创建订单请求

JSON提取器

注意:添加后置提取器时一定要放在http请求下面,不能放在线程组下面否则会一直提取不到下一个接口读取的值就会错误

JSON提取器参数说明:

Names of created variables 参数名称

JSON Path expressions 提取表达式

Match No.(0 for Random) 匹配规则,-1所有,0随机,1第一个

Compute concatenation va 如果有匹配到多个值,选择此项,会将全部值保存到_ALL,并使用逗号分割每个值,注意Match No. (0 for Random)需要为-1才有效,不然只能匹配到一个值了

Default Values 没提取到就给默认值

JSON提取器表达式说明,如果是获取第一层级的直接用$.参数,比如举滚我们要获取接口A返回的code,JSON Path expressions就用$.code;如果是返回的是一个数组就要根据返回内容去找到对应参数即可,比如我们获取的是接口A返回的data第一个sysno,就用data[0].sysNo,注意写参数时一定要和返回的一样(最好是复制),比如写成了data[0].sysno就提取不到,因为在data中找不到sysno

关联请求

jmeter后置处理器--json提取器

json提取器用于提取请求返回结果中的某个值或者某一组值,存储为指定的变量,用于后续的接口调用,使用方法比正则表闭漏达式提取器简单,所以如果接口响应数据为json格式的,我们优先使用json提取器。

取样器右键 添加 后置处理器 json 提取器

$.节点名称.二级节点名称.三级节点

相对路径提取:$..末梢节点名称

注:如果遇到key的value值为一个List,则使棚槐用.key[n]获取下标为n的元素,其中n为list中元素的编号(下标从0开始计算),例如 $..lists[2].typeDesc 表示从返回数据的lists中取下标为2的数据,然后再取typeDesc 对应的值。

添加查看结果树,运行接口请求,查看结果树中找到需要提取的接口返回,上边选择JSON Path Tester,右侧会出现表达式的输入框,输入自己写好的轿和烂表达式,点击test,看是否取到你想要的数据,取到则说明表达式正确,否则需要优化表达式。

关于jmeterjson和jmeterjson提取器参数后拼接的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

标签列表