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();
}