jmeter JSR223 PostProcessor operation

Posted by jfgreco915 on Sun, 19 Dec 2021 07:24:05 +0100

background

Recently, the project needs to test the performance of creating orders, but the surcharge input parameter when creating orders is very complex. There is a large section of surcharge to be constructed, and the surcharge of different products is different. The data structure is array type.

difficulty

Most of the online tutorials extract json and strings. There is little introduction to array splicing. It took a little time and finally found a relatively simple way.

Although BeanShell Sampler can also be implemented, it is very complex to write. It only supports java syntax. You have to write everything yourself. It is difficult to locate errors. However, you are not very familiar with java syntax and are a little familiar with python.

terms of settlement

JSR223 component elements are introduced, which provides the possibility of developing tests using a variety of programming languages, including Groovy language with high performance.

When developing tests using JSR223 component elements, you can use its built-in variables, which helps to streamline scripts and improve the efficiency of development tests.

I chose JSR223 PostProcessor here. You can see that there are both java syntax and other syntax.

Define a list:

def blCharge = [];

Add elements to the list

gp20Charge << 	"{\"chargeName\":\"Sea freight\",\"chargeType\":\"OCEAN_FEE\",\"price\":111,\"currency\":\"USD\",\"toCurrency\":\"USD\",\"transitPortId\":null,\"paymentTermsType\":\"P\"}";

List of common built-in variables

variablefunction
ctxAccess the context of the current thread
varsRead and write current variables
propsRead and write current properties
samplerAccess current sampler
prevAccess current sampler results
logWrite log file

Usage example: prev getResponseDataAsString(); // Get the Response, which is a string and needs to be converted to a json object

Attention

String chargeType = responseObj.get(0).get("chargeInfo").get(0).get("chargeDetail").get(i).get("chargeType");
If the result returned by the following fields is null, the result of chargeType is the string "null", which is not a good solution.

The full version code is as follows

import com.alibaba.fastjson.*;

String response = prev.getResponseDataAsString();  // Get the Response, which is a string and needs to be converted to a json object
List responseObj = JSON.parseArray(response);  // Convert the entire Response to a JSON object

log.info(responseObj.get(0).get("chargeInfo").get(0).get("chargeDetail").size().toString());

blChargeSize = responseObj.get(0).get("chargeInfo").get(0).get("chargeDetail").size();
gp20ChargeSize = responseObj.get(0).get("chargeInfo").get(1).get("chargeDetail").size();
gp40ChargeSize = responseObj.get(0).get("chargeInfo").get(2).get("chargeDetail").size();
hq40ChargeSize = responseObj.get(0).get("chargeInfo").get(3).get("chargeDetail").size();


def blCharge = [];
def gp20Charge = [];
def gp40Charge = [];
def hq40Charge = [];
gp20Charge << 	"{\"chargeName\":\"Sea freight\",\"chargeType\":\"OCEAN_FEE\",\"price\":111,\"currency\":\"USD\",\"toCurrency\":\"USD\",\"transitPortId\":null,\"paymentTermsType\":\"P\"}";
gp40Charge << 	"{\"chargeName\":\"Sea freight\",\"chargeType\":\"OCEAN_FEE\",\"price\":222,\"currency\":\"USD\",\"toCurrency\":\"USD\",\"transitPortId\":null,\"paymentTermsType\":\"P\"}";
hq40Charge << 	"{\"chargeName\":\"Sea freight\",\"chargeType\":\"OCEAN_FEE\",\"price\":333,\"currency\":\"USD\",\"toCurrency\":\"USD\",\"transitPortId\":null,\"paymentTermsType\":\"P\"}";

for (int i ;i<blChargeSize;i++){
	String chargeName = responseObj.get(0).get("chargeInfo").get(0).get("chargeDetail").get(i).get("chargeName");
	String chargeType = responseObj.get(0).get("chargeInfo").get(0).get("chargeDetail").get(i).get("chargeType");
	String currency = responseObj.get(0).get("chargeInfo").get(0).get("chargeDetail").get(i).get("currency");
	String chargeHisId = responseObj.get(0).get("chargeInfo").get(0).get("chargeDetail").get(i).get("chargeHisId");
	String paymentTermsType = responseObj.get(0).get("chargeInfo").get(0).get("chargeDetail").get(i).get("paymentTerms");
	String price = responseObj.get(0).get("chargeInfo").get(0).get("chargeDetail").get(i).get("price");
	String transhipmentPortId = responseObj.get(0).get("chargeInfo").get(0).get("chargeDetail").get(i).get("transhipmentPortId");
	String charge = "{\"chargeName\":\""+chargeName+"\",\"chargeType\":\""+chargeType+"\",\"chargeHisId\":\""+chargeHisId+"\",\"price\":"+price+",\"currency\":\""+currency+"\",\"toCurrency\":\"CNY\",\"transitPortId\":"+transhipmentPortId+",\"paymentTermsType\":\""+paymentTermsType+"\"}";
	blCharge << charge;
	}
for (int i ;i<gp20ChargeSize;i++){
	String chargeName = responseObj.get(0).get("chargeInfo").get(1).get("chargeDetail").get(i).get("chargeName");
	String chargeType = responseObj.get(0).get("chargeInfo").get(1).get("chargeDetail").get(i).get("chargeType");
	String currency = responseObj.get(0).get("chargeInfo").get(1).get("chargeDetail").get(i).get("currency");
	String chargeHisId = responseObj.get(0).get("chargeInfo").get(1).get("chargeDetail").get(i).get("chargeHisId");
	String paymentTermsType = responseObj.get(0).get("chargeInfo").get(1).get("chargeDetail").get(i).get("paymentTerms");
	String price = responseObj.get(0).get("chargeInfo").get(1).get("chargeDetail").get(i).get("price");
	String transhipmentPortId = responseObj.get(0).get("chargeInfo").get(1).get("chargeDetail").get(i).get("transhipmentPortId");
	String charge = "{\"chargeName\":\""+chargeName+"\",\"chargeType\":\""+chargeType+"\",\"chargeHisId\":\""+chargeHisId+"\",\"price\":"+price+",\"currency\":\""+currency+"\",\"toCurrency\":\"CNY\",\"transitPortId\":"+transhipmentPortId+",\"paymentTermsType\":\""+paymentTermsType+"\"}";
	gp20Charge << charge;
	}
for (int i ;i<gp20ChargeSize;i++){
	String chargeName = responseObj.get(0).get("chargeInfo").get(2).get("chargeDetail").get(i).get("chargeName");
	String chargeType = responseObj.get(0).get("chargeInfo").get(2).get("chargeDetail").get(i).get("chargeType");
	String currency = responseObj.get(0).get("chargeInfo").get(2).get("chargeDetail").get(i).get("currency");
	String chargeHisId = responseObj.get(0).get("chargeInfo").get(2).get("chargeDetail").get(i).get("chargeHisId");
	String paymentTermsType = responseObj.get(0).get("chargeInfo").get(2).get("chargeDetail").get(i).get("paymentTerms");
	String price = responseObj.get(0).get("chargeInfo").get(2).get("chargeDetail").get(i).get("price");
	String transhipmentPortId = responseObj.get(0).get("chargeInfo").get(2).get("chargeDetail").get(i).get("transhipmentPortId");
	String charge = "{\"chargeName\":\""+chargeName+"\",\"chargeType\":\""+chargeType+"\",\"chargeHisId\":\""+chargeHisId+"\",\"price\":"+price+",\"currency\":\""+currency+"\",\"toCurrency\":\"CNY\",\"transitPortId\":"+transhipmentPortId+",\"paymentTermsType\":\""+paymentTermsType+"\"}";
	gp40Charge << charge;
	}
for (int i ;i<gp20ChargeSize;i++){
	String chargeName = responseObj.get(0).get("chargeInfo").get(3).get("chargeDetail").get(i).get("chargeName");
	String chargeType = responseObj.get(0).get("chargeInfo").get(3).get("chargeDetail").get(i).get("chargeType");
	String currency = responseObj.get(0).get("chargeInfo").get(3).get("chargeDetail").get(i).get("currency");
	String chargeHisId = responseObj.get(0).get("chargeInfo").get(3).get("chargeDetail").get(i).get("chargeHisId");
	String paymentTermsType = responseObj.get(0).get("chargeInfo").get(3).get("chargeDetail").get(i).get("paymentTerms");
	String price = responseObj.get(0).get("chargeInfo").get(3).get("chargeDetail").get(i).get("price");
	String transhipmentPortId = responseObj.get(0).get("chargeInfo").get(3).get("chargeDetail").get(i).get("transhipmentPortId");
	String charge = "{\"chargeName\":\""+chargeName+"\",\"chargeType\":\""+chargeType+"\",\"chargeHisId\":\""+chargeHisId+"\",\"price\":"+price+",\"currency\":\""+currency+"\",\"toCurrency\":\"CNY\",\"transitPortId\":"+transhipmentPortId+",\"paymentTermsType\":\""+paymentTermsType+"\"}";
	hq40Charge << charge;
	}
vars.put("blCharge",blCharge.toString());
vars.put("gp20Charge",gp20Charge.toString());
vars.put("gp40Charge",gp40Charge.toString());
vars.put("hq40Charge",hq40Charge.toString());
log.info(blCharge.toString());
log.info(gp20Charge.toString());
log.info(gp40Charge.toString());
log.info(hq40Charge.toString()); 

Return value parameter (json format, you can analyze it yourself if you are interested)

[{"key":1,"chargeInfo":[{"chargeModel":"BL","cntrSize":null,"chargeDetail":[{"chargeCode":"MSC","chargeName":"Long term product name group test 2","chargeType":"CUS","chargeTag":"OCEAN","price":10,"currency":"USD","chargeHisId":"8aaade9f783a873101783e00efa6007a","transhipmentPortId":null,"category":null,"paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":"DOC","chargeName":"DOC","chargeType":"DOC","chargeTag":"POR","price":450,"currency":"CNY","chargeHisId":"8aaa66a9703cbd02017042fe2ce9004f","transhipmentPortId":null,"category":null,"paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"Export document service fee 103","chargeType":"BL_LOCAL","chargeTag":"POR","price":50,"currency":"CNY","chargeHisId":"8aaa801870e1e63a0170e2b96a7700f2","transhipmentPortId":null,"category":null,"paymentTerms":"P","isFollowOceanFee":false}]},{"chargeModel":"CNTR","cntrSize":"20GP","chargeDetail":[{"chargeCode":"255","chargeName":"Booking fee","chargeType":"CNTR_LOCAL","chargeTag":"POR","price":30,"currency":"CNY","chargeHisId":"8aaa65e76f357234016f35d01224002b","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"Booking operation fee","chargeType":"CNTR_LOCAL","chargeTag":"POR","price":50,"currency":"CNY","chargeHisId":"8aaa3dd270aa4d520170adc210e0001a","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"Dock security fee","chargeType":"CNTR_LOCAL","chargeTag":"POR","price":2,"currency":"CNY","chargeHisId":"8aaa3dd270aa4d520170adc210d50015","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"Container equipment management fee","chargeType":"CNTR_LOCAL","chargeTag":"POR","price":30,"currency":"CNY","chargeHisId":"8aaa3dd270aa4d520170adc210ea001f","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"Lead sealing fee SLF","chargeType":"THC","chargeTag":"POR","price":30,"currency":"CNY","chargeHisId":"8aaa801870e1e63a0170e2b9fbd6098d","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"THC","chargeType":"THC","chargeTag":"POR","price":646,"currency":"CNY","chargeHisId":"8aaa801870e1e63a0170e2b9f820078a","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":"BKF","chargeName":"Booking operation fee","chargeType":"THC","chargeTag":"POR","price":50,"currency":"CNY","chargeHisId":"8aaa02346b9839da016b984c430c32b1","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":"EEC","chargeName":"Container equipment management fee","chargeType":"THC","chargeTag":"POR","price":30,"currency":"CNY","chargeHisId":"8aaa02346b9839da016b984c431b32b6","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"Booking fee MIS","chargeType":"THC","chargeTag":"POR","price":180,"currency":"CNY","chargeHisId":"8aaa801870e1e63a0170e2b9fbb6097e","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"Dock security fee PSL","chargeType":"THC","chargeTag":"POR","price":8,"currency":"CNY","chargeHisId":"8aaa801870e1e63a0170e2b9fbc00983","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"EIR service charge","chargeType":"THC","chargeTag":"POR","price":30,"currency":"CNY","chargeHisId":"8aaa801870e1e63a0170e2b9fbca0988","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":"SUBTO","chargeName":"subto","chargeType":"CNTR_OCEAN","chargeTag":"OCEAN","price":60,"currency":"USD","chargeHisId":"8aaade9f783a873101783e0854ee0098","transhipmentPortId":null,"category":"OCEAN_EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":"MSC","chargeName":"Long term product name group test 2","chargeType":"CNTR_OCEAN","chargeTag":"OCEAN","price":100,"currency":"USD","chargeHisId":"8aaade9f783a873101783e00f0210080","transhipmentPortId":null,"category":"OCEAN_EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":"TET","chargeName":"TET","chargeType":"CNTR_OCEAN","chargeTag":"OCEAN","price":111,"currency":"USD","chargeHisId":"8aaaa9137b5c8cb8017b5d9bcbd50163","transhipmentPortId":null,"category":"OCEAN_EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false}]},{"chargeModel":"CNTR","cntrSize":"40GP","chargeDetail":[{"chargeCode":"255","chargeName":"Booking fee","chargeType":"CNTR_LOCAL","chargeTag":"POR","price":40,"currency":"CNY","chargeHisId":"8aaa65e76f357234016f35d01224002b","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"Booking operation fee","chargeType":"CNTR_LOCAL","chargeTag":"POR","price":100,"currency":"CNY","chargeHisId":"8aaa3dd270aa4d520170adc210e0001a","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"Dock security fee","chargeType":"CNTR_LOCAL","chargeTag":"POR","price":3,"currency":"CNY","chargeHisId":"8aaa3dd270aa4d520170adc210d50015","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"Container equipment management fee","chargeType":"CNTR_LOCAL","chargeTag":"POR","price":30,"currency":"CNY","chargeHisId":"8aaa3dd270aa4d520170adc210ea001f","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"Lead sealing fee SLF","chargeType":"THC","chargeTag":"POR","price":30,"currency":"CNY","chargeHisId":"8aaa801870e1e63a0170e2b9fbd6098d","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"THC","chargeType":"THC","chargeTag":"POR","price":982,"currency":"CNY","chargeHisId":"8aaa801870e1e63a0170e2b9f820078a","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":"BKF","chargeName":"Booking operation fee","chargeType":"THC","chargeTag":"POR","price":100,"currency":"CNY","chargeHisId":"8aaa02346b9839da016b984c430c32b1","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":"EEC","chargeName":"Container equipment management fee","chargeType":"THC","chargeTag":"POR","price":30,"currency":"CNY","chargeHisId":"8aaa02346b9839da016b984c431b32b6","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"Booking fee MIS","chargeType":"THC","chargeTag":"POR","price":280,"currency":"CNY","chargeHisId":"8aaa801870e1e63a0170e2b9fbb6097e","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"Dock security fee PSL","chargeType":"THC","chargeTag":"POR","price":12,"currency":"CNY","chargeHisId":"8aaa801870e1e63a0170e2b9fbc00983","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"EIR service charge","chargeType":"THC","chargeTag":"POR","price":30,"currency":"CNY","chargeHisId":"8aaa801870e1e63a0170e2b9fbca0988","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":"SUBTO","chargeName":"subto","chargeType":"CNTR_OCEAN","chargeTag":"OCEAN","price":90,"currency":"USD","chargeHisId":"8aaade9f783a873101783e0854ee0098","transhipmentPortId":null,"category":"OCEAN_EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":"MSC","chargeName":"Long term product name group test 2","chargeType":"CNTR_OCEAN","chargeTag":"OCEAN","price":200,"currency":"USD","chargeHisId":"8aaade9f783a873101783e00f0210080","transhipmentPortId":null,"category":"OCEAN_EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":"TET","chargeName":"TET","chargeType":"CNTR_OCEAN","chargeTag":"OCEAN","price":222,"currency":"USD","chargeHisId":"8aaaa9137b5c8cb8017b5d9bcbd50163","transhipmentPortId":null,"category":"OCEAN_EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false}]},{"chargeModel":"CNTR","cntrSize":"40HQ","chargeDetail":[{"chargeCode":"255","chargeName":"Booking fee","chargeType":"CNTR_LOCAL","chargeTag":"POR","price":170,"currency":"CNY","chargeHisId":"8aaa65e76f357234016f35d01224002b","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"Booking operation fee","chargeType":"CNTR_LOCAL","chargeTag":"POR","price":100,"currency":"CNY","chargeHisId":"8aaa3dd270aa4d520170adc210e0001a","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"Dock security fee","chargeType":"CNTR_LOCAL","chargeTag":"POR","price":3,"currency":"CNY","chargeHisId":"8aaa3dd270aa4d520170adc210d50015","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"Container equipment management fee","chargeType":"CNTR_LOCAL","chargeTag":"POR","price":30,"currency":"CNY","chargeHisId":"8aaa3dd270aa4d520170adc210ea001f","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"Lead sealing fee SLF","chargeType":"THC","chargeTag":"POR","price":30,"currency":"CNY","chargeHisId":"8aaa801870e1e63a0170e2b9fbd6098d","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"THC","chargeType":"THC","chargeTag":"POR","price":982,"currency":"CNY","chargeHisId":"8aaa801870e1e63a0170e2b9f820078a","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":"BKF","chargeName":"Booking operation fee","chargeType":"THC","chargeTag":"POR","price":100,"currency":"CNY","chargeHisId":"8aaa02346b9839da016b984c430c32b1","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":"EEC","chargeName":"Container equipment management fee","chargeType":"THC","chargeTag":"POR","price":30,"currency":"CNY","chargeHisId":"8aaa02346b9839da016b984c431b32b6","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"Booking fee MIS","chargeType":"THC","chargeTag":"POR","price":280,"currency":"CNY","chargeHisId":"8aaa801870e1e63a0170e2b9fbb6097e","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"Dock security fee PSL","chargeType":"THC","chargeTag":"POR","price":12,"currency":"CNY","chargeHisId":"8aaa801870e1e63a0170e2b9fbc00983","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"EIR service charge","chargeType":"THC","chargeTag":"POR","price":30,"currency":"CNY","chargeHisId":"8aaa801870e1e63a0170e2b9fbca0988","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":"SUBTO","chargeName":"subto","chargeType":"CNTR_OCEAN","chargeTag":"OCEAN","price":90,"currency":"USD","chargeHisId":"8aaade9f783a873101783e0854ee0098","transhipmentPortId":null,"category":"OCEAN_EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":"MSC","chargeName":"Long term product name group test 2","chargeType":"CNTR_OCEAN","chargeTag":"OCEAN","price":300,"currency":"USD","chargeHisId":"8aaade9f783a873101783e00f0210080","transhipmentPortId":null,"category":"OCEAN_EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":"TET","chargeName":"TET","chargeType":"CNTR_OCEAN","chargeTag":"OCEAN","price":222,"currency":"USD","chargeHisId":"8aaaa9137b5c8cb8017b5d9bcbd50163","transhipmentPortId":null,"category":"OCEAN_EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false}]}]},{"key":1,"chargeInfo":[{"chargeModel":"BL","cntrSize":null,"chargeDetail":[]}]}]

Topics: Java jmeter Stress testing