Postman REST API:比较两个XML响应
我试图比较两个RESTAPI的XML响应。我想比较一下Response1和Response2中的几个字段 答复1:Postman REST API:比较两个XML响应,postman,postman-collection-runner,Postman,Postman Collection Runner,我试图比较两个RESTAPI的XML响应。我想比较一下Response1和Response2中的几个字段 答复1: <d:site_name>Bondi Junction</d:site_name> <d:country>AU</d:country> <d:regio>NSW</d:regio> <d:contact>123456789</d:contact> Bondi结 金 新南威尔士州 123
<d:site_name>Bondi Junction</d:site_name>
<d:country>AU</d:country>
<d:regio>NSW</d:regio>
<d:contact>123456789</d:contact>
Bondi结
金
新南威尔士州
123456789
答复2:
<d:country>AU</d:country>
<d:region>NSW</d:region>
AU
新南威尔士州
我已经创建了一个集合,其中包含两个API,我想运行这两个API并比较可用列(我不想完全比较)
你能给我介绍一下做这件事的方法吗
谢谢,
塞卡尔
据我所知,如果不将xml转换为json,就很难比较xml属性和元素的值 下面是2个用例(测试)的工作示例(xml转换为json)
difference()
,可以测试这两个XML是否有任何差异function difference(object, base) {
function changes(object, base) {
return _.transform(object, function(result, value, key) {
if (!_.isEqual(value, base[key])) {
result[key] = (_.isObject(value) && _.isObject(base[key])) ? changes(value, base[key]) : value;
}
});
}
return changes(object, base);
}
var xml1 = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<envelope>
<body>
<d:site_name>Bondi Junction</d:site_name>
<d:country>AU</d:country>
<d:regio>NSW</d:regio>
<d:contact>123456789</d:contact>
</body>
</envelope>
`;
var xml2 = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<envelope>
<body>
<d:country>AU</d:country>
<d:region>NSW</d:region>
</body>
</envelope>
`;
var jsonObject1 = xml2Json(xml1);
var jsonObject2 = xml2Json(xml2);
var diff = difference(jsonObject1, jsonObject2);
console.log(diff);
pm.test("Test for any differences in the 2 payloads", function() {
//diff object will be empty in case of no differences
pm.expect(_.isEmpty(diff)).to.eql(true);
});
pm.test("Test for the value of country in 2 payloads ", function() {
pm.expect(jsonObject1.envelope.body.country).to.eql(jsonObject2.envelope.body.country);
});
功能差异(对象、基础){
功能更改(对象、基础){
返回转换(对象、函数(结果、值、键){
if(!\ isEqual(值,基[键]){
结果[key]=(u.isObject(value)和&u.isObject(base[key])?更改(value,base[key]):value;
}
});
}
返回更改(对象、基础);
}
变量xml1=`
邦迪结
金
新南威尔士州
123456789
`;
变量xml2=`
金
新南威尔士州
`;
var jsonObject1=xml2Json(xml1);
var jsonObject2=xml2Json(xml2);
var diff=差异(jsonObject1,jsonObject2);
控制台日志(diff);
pm.test(“测试2个有效负载中的任何差异”,函数(){
//如果没有差异,diff对象将为空
pm.expect(u.isEmpty(diff)).to.eql(true);
});
pm.test(“测试2个有效载荷中的国家值”,函数(){
expect(jsonObject1.envelope.body.country).to.eql(jsonObject2.envelope.body.country);
});