Javascript 如何比较JSON主体对象名称(键)本身?
我对邮递员很陌生。我想比较JSON主体对象响应Javascript 如何比较JSON主体对象名称(键)本身?,javascript,typescript,postman,postman-testcase,Javascript,Typescript,Postman,Postman Testcase,我对邮递员很陌生。我想比较JSON主体对象响应 json_response = JSON.parse(responseBody); x=json_response.counter pm.expect(x).to.equal("400"); 它给我对应的“计数器”的400值(或键“计数器”的“400”值) 但我想将“计数器”与“计数器”本身进行比较。(例如,柜台、柜台等) 基本上,我想测试接收到的所有JSON密钥是否与我正在寻找的相同! 有简单的方法吗?邮递员(由于某种原因,此链接指向pm.co
json_response = JSON.parse(responseBody);
x=json_response.counter
pm.expect(x).to.equal("400");
它给我对应的“计数器”的400值(或键“计数器”的“400”值)
但我想将“计数器”与“计数器”本身进行比较。(例如,柜台、柜台等)
基本上,我想测试接收到的所有JSON密钥是否与我正在寻找的相同!
有简单的方法吗?邮递员(由于某种原因,此链接指向pm.cookies
,但pm.expect
的条目位于该标题下)。A使用您可以通过说出expect(someObject).to.have.keys(expectedKeys)
来验证响应是否只有您期望的键,并定义键应该是什么:
//为了方便起见-在邮递员那里,这些东西很容易买到。
var pm={
期待:柴,期待,
答复:{
json:function(){
//你会得到什么样的回应
返回{“计数器”:400,“有效分钟”:660,“当前计数器”:322};
}
}
};
/*---测试脚本开始--*/
var expectedKeys=[“计数器”、“有效分钟数”、“当前计数器”];
expect(pm.response.json()).to.have.keys(expectedKeys);//好的
你脑子里有一个特定的模式,你想检查一下。(例如,必填字段、类型等)
另一种可能的方法是根据预定义的JSON模式进行验证:
//Schema definition (can be available as a global var)
var schema = {
"type": "object",
"properties": {
"counter": {
"type": "number"
},
"validInMinutes": {
"type": "number"
},
"currentCounter": {
"type": "number"
}
},
"required": ["counter", "validInMinutes", "currentCounter"]
};
//Test
pm.test('Schema is valid', function() {
var jsonData = pm.response.json();
pm.expect(tv4.validate(jsonData, schema)).to.be.true;
});
行
“required”:[“counter”、“validInMinutes”、“currentCounter”]
正是您对必须存在的属性类型的定义。但是你也可以定义更多的strct规则,比如“必须是Numer类型的”,或者必须正好有3个数字,等等。将它们与.toLowerCase()
进行比较,因为现在“Counter”不存在,因为你的密钥是“Counter”。JSON是用来传输Javascript对象的字符串。JSON代表Javascript对象表示法。您不是在比较“JSON正文”中的键,而是在比较javascript对象中的键。@Jabberwocky这是个错误的建议,因为属性区分大小写。@kishor您要找的键是什么?看起来您希望字符串等于数字(“400”与400不同)
//Schema definition (can be available as a global var)
var schema = {
"type": "object",
"properties": {
"counter": {
"type": "number"
},
"validInMinutes": {
"type": "number"
},
"currentCounter": {
"type": "number"
}
},
"required": ["counter", "validInMinutes", "currentCounter"]
};
//Test
pm.test('Schema is valid', function() {
var jsonData = pm.response.json();
pm.expect(tv4.validate(jsonData, schema)).to.be.true;
});