背景
最近项目需要做创建订单的性能测试,但是创建订单时的附加费入参很复杂,有一大段的附加费需要构造,且不同的产品附加费还不一样,数据结构是数组类型。
难点
网上教程大部分都是提取json和字符串的,关于数组拼接的介绍很少,花了一点时间,终于找到了一种比较简单的方式。
BeanShell Sampler虽然也可以实现,但写起来很复杂,只支持java语法,什么都要自己写,报错很难定位,而自己对于java语法不是特别熟悉,对python稍微熟悉一点。
解决办法
引入了JSR223组件元素,提供了使用多种编程语言开发测试的可能性,其中包括了性能较高的Groovy语言。
在使用JSR223组件元素开发测试时,可以使用其内置的变量,有助于精简脚本,提高开发测试的效率。
我这里选择了JSR223 PostProcessor,可以看到这里面既有java语法,也有别的语法。
定义一个列表:
def blCharge = [];
往列表里加入元素
gp20Charge << "{\"chargeName\":\"海运费\",\"chargeType\":\"OCEAN_FEE\",\"price\":111,\"currency\":\"USD\",\"toCurrency\":\"USD\",\"transitPortId\":null,\"paymentTermsType\":\"P\"}";
常用内置变量列表
变量 | 功能 |
---|---|
ctx | 访问当前线程的上下文 |
vars | 读写当前变量 |
props | 读写当前属性 |
sampler | 访问当前取样器 |
prev | 访问当前取样器结果 |
log | 写日志文件 |
使用示例:prev.getResponseDataAsString();
// 获取Response,为字符串,需要转为json对象
注意点
String chargeType = responseObj.get(0).get(“chargeInfo”).get(0).get(“chargeDetail”).get(i).get(“chargeType”);
如果后面的字段返回的结果是null,那么chargeType的结果是字符串"null",这个还没好的解决方案。
完整版代码如下
import com.alibaba.fastjson.*;
String response = prev.getResponseDataAsString(); // 获取Response,为字符串,需要转为json对象
List responseObj = JSON.parseArray(response); // 整个Response转为JSON对象
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\":\"海运费\",\"chargeType\":\"OCEAN_FEE\",\"price\":111,\"currency\":\"USD\",\"toCurrency\":\"USD\",\"transitPortId\":null,\"paymentTermsType\":\"P\"}";
gp40Charge << "{\"chargeName\":\"海运费\",\"chargeType\":\"OCEAN_FEE\",\"price\":222,\"currency\":\"USD\",\"toCurrency\":\"USD\",\"transitPortId\":null,\"paymentTermsType\":\"P\"}";
hq40Charge << "{\"chargeName\":\"海运费\",\"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());
返回值参数(是json格式,大家感兴趣可以自行解析一下)
[{"key":1,"chargeInfo":[{"chargeModel":"BL","cntrSize":null,"chargeDetail":[{"chargeCode":"MSC","chargeName":"远期品名组测试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":"出口单证服务费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":"订舱费","chargeType":"CNTR_LOCAL","chargeTag":"POR","price":30,"currency":"CNY","chargeHisId":"8aaa65e76f357234016f35d01224002b","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"订舱操作费","chargeType":"CNTR_LOCAL","chargeTag":"POR","price":50,"currency":"CNY","chargeHisId":"8aaa3dd270aa4d520170adc210e0001a","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"码头安保费","chargeType":"CNTR_LOCAL","chargeTag":"POR","price":2,"currency":"CNY","chargeHisId":"8aaa3dd270aa4d520170adc210d50015","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"集装箱设备管理费","chargeType":"CNTR_LOCAL","chargeTag":"POR","price":30,"currency":"CNY","chargeHisId":"8aaa3dd270aa4d520170adc210ea001f","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"铅封费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":"订舱操作费","chargeType":"THC","chargeTag":"POR","price":50,"currency":"CNY","chargeHisId":"8aaa02346b9839da016b984c430c32b1","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":"EEC","chargeName":"集装箱设备管理费","chargeType":"THC","chargeTag":"POR","price":30,"currency":"CNY","chargeHisId":"8aaa02346b9839da016b984c431b32b6","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"订舱费MIS","chargeType":"THC","chargeTag":"POR","price":180,"currency":"CNY","chargeHisId":"8aaa801870e1e63a0170e2b9fbb6097e","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"码头安保费PSL","chargeType":"THC","chargeTag":"POR","price":8,"currency":"CNY","chargeHisId":"8aaa801870e1e63a0170e2b9fbc00983","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"EIR服务费","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":"远期品名组测试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":"订舱费","chargeType":"CNTR_LOCAL","chargeTag":"POR","price":40,"currency":"CNY","chargeHisId":"8aaa65e76f357234016f35d01224002b","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"订舱操作费","chargeType":"CNTR_LOCAL","chargeTag":"POR","price":100,"currency":"CNY","chargeHisId":"8aaa3dd270aa4d520170adc210e0001a","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"码头安保费","chargeType":"CNTR_LOCAL","chargeTag":"POR","price":3,"currency":"CNY","chargeHisId":"8aaa3dd270aa4d520170adc210d50015","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"集装箱设备管理费","chargeType":"CNTR_LOCAL","chargeTag":"POR","price":30,"currency":"CNY","chargeHisId":"8aaa3dd270aa4d520170adc210ea001f","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"铅封费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":"订舱操作费","chargeType":"THC","chargeTag":"POR","price":100,"currency":"CNY","chargeHisId":"8aaa02346b9839da016b984c430c32b1","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":"EEC","chargeName":"集装箱设备管理费","chargeType":"THC","chargeTag":"POR","price":30,"currency":"CNY","chargeHisId":"8aaa02346b9839da016b984c431b32b6","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"订舱费MIS","chargeType":"THC","chargeTag":"POR","price":280,"currency":"CNY","chargeHisId":"8aaa801870e1e63a0170e2b9fbb6097e","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"码头安保费PSL","chargeType":"THC","chargeTag":"POR","price":12,"currency":"CNY","chargeHisId":"8aaa801870e1e63a0170e2b9fbc00983","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"EIR服务费","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":"远期品名组测试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":"订舱费","chargeType":"CNTR_LOCAL","chargeTag":"POR","price":170,"currency":"CNY","chargeHisId":"8aaa65e76f357234016f35d01224002b","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"订舱操作费","chargeType":"CNTR_LOCAL","chargeTag":"POR","price":100,"currency":"CNY","chargeHisId":"8aaa3dd270aa4d520170adc210e0001a","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"码头安保费","chargeType":"CNTR_LOCAL","chargeTag":"POR","price":3,"currency":"CNY","chargeHisId":"8aaa3dd270aa4d520170adc210d50015","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"集装箱设备管理费","chargeType":"CNTR_LOCAL","chargeTag":"POR","price":30,"currency":"CNY","chargeHisId":"8aaa3dd270aa4d520170adc210ea001f","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"铅封费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":"订舱操作费","chargeType":"THC","chargeTag":"POR","price":100,"currency":"CNY","chargeHisId":"8aaa02346b9839da016b984c430c32b1","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":"EEC","chargeName":"集装箱设备管理费","chargeType":"THC","chargeTag":"POR","price":30,"currency":"CNY","chargeHisId":"8aaa02346b9839da016b984c431b32b6","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"订舱费MIS","chargeType":"THC","chargeTag":"POR","price":280,"currency":"CNY","chargeHisId":"8aaa801870e1e63a0170e2b9fbb6097e","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"码头安保费PSL","chargeType":"THC","chargeTag":"POR","price":12,"currency":"CNY","chargeHisId":"8aaa801870e1e63a0170e2b9fbc00983","transhipmentPortId":null,"category":"EXTRA_CHARGE","paymentTerms":"P","isFollowOceanFee":false},{"chargeCode":null,"chargeName":"EIR服务费","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":"远期品名组测试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":[]}]}]