之前我们要提取json格式的响应体某个字段时可以采用神器json提取器,

Jmeter书中不会教你的(8)——提取响应内容的神器JSON Extractor_agrapea的博客-CSDN博客        现在学另一种方法,在beanshell中将json格式的响应体为字符串类型的内容转换为JSON对象,从而利用JSON对象的方法轻松的得到我们期望的值。

        这里需要用到一个插件jar包,关于beanshell中如何引入jar包的方式可以参考

Jmeter书中不会教你的(45)——beanshell中引入jar包方式2_agrapea的博客-CSDN博客

将jar包放入lib\ext下,新建一个dummy sampler,响应值如下

{
	"msgCode": "0",
	"msg": "成功",
	"data": {
		"total": 321,
		"list": [{
			"taskId": "fc4c2b3e7e2c400d81f0eae63f15a4ab",
			"recordId": "f4daf944-2bdf-4bc8-8962-40dbd1afd786",
			"distributeTime": "2019-01-30 11:37:08",
			"taskName": "20190130task1",
			"bizName": "智能面试",
			"wavFilename": "20180910095609049_1_316_ipcc_shtp_asr-8kHz-aff95840b49c11e8[1].wav",
			"recordSource": "/nfsc/csp_nas_8821_id008821_vol1002_stg/eim-sm/RECORD/zhinengmianshi/20190130/20180910095609049_1_316_ipcc_shtp_asr-8kHz-aff95840b49c11e8[1].wav",
			"recordDuration": "00:00:22",
			"statusName": null,
			"markStartTime": null,
			"markEndTime": null,
			"markReceiveTime": null,
			"marker": null,
			"userFlag": null,
			"back": false
		}, {
			"taskId": "6adcf44f2fdf4e3fb2ce93a8eaec87de",
			"recordId": "b4d12c20-8b19-4095-a78a-509d0733c88b",
			"distributeTime": "2019-01-30 11:37:09",
			"taskName": "20190130task1",
			"bizName": "智能面试",
			"wavFilename": "20180910095704682_1_317_ipcc_shtp_asr-8kHz-d1202b66b49c11e8[1].wav",
			"recordSource": "/nfsc/csp_nas_8821_id008821_vol1002_stg/eim-sm/RECORD/zhinengmianshi/20190130/20180910095704682_1_317_ipcc_shtp_asr-8kHz-d1202b66b49c11e8[1].wav",
			"recordDuration": "00:00:20",
			"statusName": null,
			"markStartTime": null,
			"markEndTime": null,
			"markReceiveTime": null,
			"marker": null,
			"userFlag": null,
			"back": false
		}, {
			"taskId": "da3213defd7c4a9e9a49880bfe09b601",
			"recordId": "29529ea1-3868-463c-9b88-9f077927be3e",
			"distributeTime": "2019-01-30 11:37:10",
			"taskName": "20190130task1",
			"bizName": "智能面试",
			"wavFilename": "20180910095704682_1_317_ipcc_shtp_asr-8kHz-d1202b66b49c11e8[2].wav",
			"recordSource": "/nfsc/csp_nas_8821_id008821_vol1002_stg/eim-sm/RECORD/zhinengmianshi/20190130/20180910095704682_1_317_ipcc_shtp_asr-8kHz-d1202b66b49c11e8[2].wav",
			"recordDuration": "00:00:16",
			"statusName": null,
			"markStartTime": null,
			"markEndTime": null,
			"markReceiveTime": null,
			"marker": null,
			"userFlag": null,
			"back": false
		}, {
			"taskId": "b9f2bcf2970b40cea82007ba450eaa7c",
			"recordId": "e1b355f9-fc1a-4920-a20f-684cd2145d7c",
			"distributeTime": "2019-01-30 11:37:11",
			"taskName": "20190130task1",
			"bizName": "智能面试",
			"wavFilename": "20180910095837911_1_318_ipcc_shtp_asr-8kHz-08b06f50b49d11e8[1].wav",
			"recordSource": "/nfsc/csp_nas_8821_id008821_vol1002_stg/eim-sm/RECORD/zhinengmianshi/20190130/20180910095837911_1_318_ipcc_shtp_asr-8kHz-08b06f50b49d11e8[1].wav",
			"recordDuration": "00:00:16",
			"statusName": null,
			"markStartTime": null,
			"markEndTime": null,
			"markReceiveTime": null,
			"marker": null,
			"userFlag": null,
			"back": false
		}, {
			"taskId": "f342876995a9480490067818238aaf13",
			"recordId": "c53a7808-4281-4731-91f8-39f1d23ca0fe",
			"distributeTime": "2019-01-30 11:37:11",
			"taskName": "20190130task1",
			"bizName": "智能面试",
			"wavFilename": "20180910095837911_1_318_ipcc_shtp_asr-8kHz-08b06f50b49d11e8[2].wav",
			"recordSource": "/nfsc/csp_nas_8821_id008821_vol1002_stg/eim-sm/RECORD/zhinengmianshi/20190130/20180910095837911_1_318_ipcc_shtp_asr-8kHz-08b06f50b49d11e8[2].wav",
			"recordDuration": "00:00:06",
			"statusName": null,
			"markStartTime": null,
			"markEndTime": null,
			"markReceiveTime": null,
			"marker": null,
			"userFlag": null,
			"back": false
		}, {
			"taskId": "e85abd8bf8fc4a84beb39f8e324dce28",
			"recordId": "dc620476-ef9b-4119-afb0-26d43b5849cf",
			"distributeTime": "2019-01-30 11:37:12",
			"taskName": "20190130task1",
			"bizName": "智能面试",
			"wavFilename": "20180910095839670_1_319_ipcc_shtp_asr-8kHz-09c0011cb49d11e8[1].wav",
			"recordSource": "/nfsc/csp_nas_8821_id008821_vol1002_stg/eim-sm/RECORD/zhinengmianshi/20190130/20180910095839670_1_319_ipcc_shtp_asr-8kHz-09c0011cb49d11e8[1].wav",
			"recordDuration": "00:00:21",
			"statusName": null,
			"markStartTime": null,
			"markEndTime": null,
			"markReceiveTime": null,
			"marker": null,
			"userFlag": null,
			"back": false
		}, {
			"taskId": "de9a2a7a34da45b1b8383ca7e2ad2c42",
			"recordId": "e2032d7a-8826-46e5-9e60-303d9e9e1856",
			"distributeTime": "2019-01-30 11:37:13",
			"taskName": "20190130task1",
			"bizName": "智能面试",
			"wavFilename": "20180910095915418_1_320_ipcc_shtp_asr-8kHz-1f0d7e50b49d11e8[1].wav",
			"recordSource": "/nfsc/csp_nas_8821_id008821_vol1002_stg/eim-sm/RECORD/zhinengmianshi/20190130/20180910095915418_1_320_ipcc_shtp_asr-8kHz-1f0d7e50b49d11e8[1].wav",
			"recordDuration": "00:00:15",
			"statusName": null,
			"markStartTime": null,
			"markEndTime": null,
			"markReceiveTime": null,
			"marker": null,
			"userFlag": null,
			"back": false
		}, {
			"taskId": "459e73e5812d46589686c9bde6287eac",
			"recordId": "a6573fac-4bd9-4365-a776-a216c8f94629",
			"distributeTime": "2019-01-30 11:37:14",
			"taskName": "20190130task1",
			"bizName": "智能面试",
			"wavFilename": "20180910095918387_1_321_ipcc_shtp_asr-8kHz-20d5be32b49d11e8[1].wav",
			"recordSource": "/nfsc/csp_nas_8821_id008821_vol1002_stg/eim-sm/RECORD/zhinengmianshi/20190130/20180910095918387_1_321_ipcc_shtp_asr-8kHz-20d5be32b49d11e8[1].wav",
			"recordDuration": "00:00:14",
			"statusName": null,
			"markStartTime": null,
			"markEndTime": null,
			"markReceiveTime": null,
			"marker": null,
			"userFlag": null,
			"back": false
		}, {
			"taskId": "4dd84231684640c8bf0bea4a7392735d",
			"recordId": "1bf3c3ca-2f1d-424a-8ca3-f9b789518d90",
			"distributeTime": "2019-01-30 11:37:15",
			"taskName": "20190130task1",
			"bizName": "智能面试",
			"wavFilename": "20180910095918387_1_321_ipcc_shtp_asr-8kHz-20d5be32b49d11e8[2].wav",
			"recordSource": "/nfsc/csp_nas_8821_id008821_vol1002_stg/eim-sm/RECORD/zhinengmianshi/20190130/20180910095918387_1_321_ipcc_shtp_asr-8kHz-20d5be32b49d11e8[2].wav",
			"recordDuration": "00:00:09",
			"statusName": null,
			"markStartTime": null,
			"markEndTime": null,
			"markReceiveTime": null,
			"marker": null,
			"userFlag": null,
			"back": false
		}, {
			"taskId": "f705b3b1a35b4bf1b7d368f6722d4a22",
			"recordId": "00c2d521-825c-4484-8dea-84c3ebe8bfd8",
			"distributeTime": "2019-01-30 11:37:16",
			"taskName": "20190130task1",
			"bizName": "智能面试",
			"wavFilename": "20180910100007298_1_322_ipcc_shtp_asr-8kHz-3df9e268b49d11e8[1].wav",
			"recordSource": "/nfsc/csp_nas_8821_id008821_vol1002_stg/eim-sm/RECORD/zhinengmianshi/20190130/20180910100007298_1_322_ipcc_shtp_asr-8kHz-3df9e268b49d11e8[1].wav",
			"recordDuration": "00:00:11",
			"statusName": null,
			"markStartTime": null,
			"markEndTime": null,
			"markReceiveTime": null,
			"marker": null,
			"userFlag": null,
			"back": false
		}],
		"pageNum": 1,
		"pageSize": 10,
		"size": 10,
		"startRow": 1,
		"endRow": 10,
		"pages": 33,
		"prePage": 0,
		"nextPage": 2,
		"isFirstPage": true,
		"isLastPage": false,
		"hasPreviousPage": false,
		"hasNextPage": true,
		"navigatePages": 8,
		"navigatepageNums": [1, 2, 3, 4, 5, 6, 7, 8],
		"navigateFirstPage": 1,
		"navigateLastPage": 8,
		"firstPage": 1,
		"lastPage": 8
	}
}

再其下新建一个beanshell后置处理器用来处理json,假设我们需要提取以上msgCode的值,

1)new一个JSONObject对象

2)利用对象的get(“字段”)方法获取字段内容,获取的类型根据实际获取的内容决定,String、int、数组等都有可能

 如果需要获取下一个层级data下面total的值,每一个层级间用点(.)表示,由于total值为整箱,打印时要转换成String类型

total=rsob.get("data").get("total");
log.info(total.toString());

如果需要再次获取data下面list数组呢?

如果这样写,会提示报错,因为获取的list是数组,info不能直接打印数组

list=rsob.get("data").get("list");
log.info(list);

 我们可以使用list.toString()将数组信息作为字符串打印出来。但是字符串不方便使用,如果需要提取数组中的值怎么操作?在报错信息中提到了JSONArray,下一节讲。。。。。。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐