postman json report中nodejs 的buffer使用java解析

1、postman中使用newman导出json报告

newman命令可以生生成 jsonOut.json报告

newman run c:\test1.json --reporters cli,html,json,junit --reporter-json-export jsonOut.json --reporter-junit-export xmlOut.xml --reporter-html-export htmlOut.html

1.1 解析json报告

json测试报告中的值均可以通过json解析,但是响应消息 是通过nodejs 的十进制buffer数组进行传输的

 

下面就是其中的一段,经过研究就nodejs的传输方式

    "stream": {
            "type": "Buffer",
            "data": [
              123,
              34,
              119,

1.2  解析nodejs中的Buffer

  123,34  这类最先发现是asii的10进制对应的,可以强转char,但是发现中文字符是乱码。后来发现这里使用的nodejs中的buffer。

   在js中可以很方便的解析出来

var buffer = new Buffer([230,159,165]); 
        console.log(buffer.length); // => 3
        console.log(buffer); // => <Buffer e4 b8 ad>
        console.log(buffer.toString());

2、java解析buffer

    下面这段代码,就是将带中文的字符串,成功转成了 类似buffer的十进制的arraylist。并且将十进制的arraylist也成功解析为了string。这样就可以通过java成功解析json报告,也可以将postman集成到支持java的测试工具中。

 

//输入的带中文字符串

String source = "查寻成功aaabbb";

byte[] arr;

ArrayList<Integer> list = new ArrayList<Integer>();

//按utf-8字符集解码

try {

arr = source.getBytes("utf-8");

byte[] buffer=new byte[arr.length];

System.out.println(arr.length);

System.out.printf("%15s", "utf-8 : ");

for(int i=0; i<arr.length; i++){

//System.out.printf("%X " , arr[i]);

 

//byte 转10进制

int v = arr[i] & 0xFF;

System.out.println(v);

String hv = Integer.toHexString(v);

//BigInteger bi = new BigInteger(hv, 16);

list.add(Integer.parseInt(hv, 16));

 

  //16进制转10进制

  //int num=Integer.parseInt(hv, 16);

  //System.out.printf( "num:"+num+" ");

//将10进制整数转 byte

buffer[i]= new Integer(v).byteValue();

// System.out.printf("%X ",arr[i]);

}

             //将byte 数组转为utf-8 对应的string

String str = new String(buffer, StandardCharsets.UTF_8);

System.out.println('\n'+str);

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值