"Postman -How to check the typeof any key is 'string' or 'null' at same time"



在给定的响应片段中,"parentName"类型有时是null,有时是string。如何检查/编写测试用例来一次检查stringnull的类型。

tests["Verify parentName is string"] = typeof(jsonData.parentName) === "string" || null;
tests["Verify parentName is string"] = typeof(jsonData.parentName) === "string" || "null";
"demo": [
{
"id": 68214,
"specializationId": 286,
"name": "Radiology",
"parentName": null,
"primary": true
}
],

如何在poster中处理这种情况(null&string(。

如果Postman测试用例中存在elseif,我不建议使用。Postman有内置的模式检查功能,您可以使用它,并且可以在没有if else的情况下获得相同的结果。

首先,我正在考虑以下作为回应:

{
"demo": [{
"id": 68214,
"specializationId": 286,
"name": "Radiology",
"parentName": null,
"primary": true
}]
}

邮差测试应为:

var Ajv = require('ajv'),
ajv = new Ajv({logger: console}),
schema = {
"properties": {
"parentName": {
"type":["string", "null"]
}
}
};
pm.test('Verify parentName is string', function() {    
var resParentName =  pm.response.json().demo[0].parentName;
pm.expect(ajv.validate(schema, {parentName: resParentName})).to.be.true;
});

编辑:验证完整响应,而不仅仅是第一项。还要检查响应中是否存在parentName

var Ajv = require('ajv'),
ajv = new Ajv({logger: console}),
schema = {
"properties": {
"demo":{
"type": "array",
"items": {
"properties": {
"id":{ "type": "integer" },
"specializationId":{ "type": "integer" },
"name":{"type": "string"},
"parentName":{
"type":["string", "null"]
},
"primary":{"type": "boolean"}
},
"required": [ "parentName"]
}
}
}
};
pm.test('Validate response', function() {
pm.expect(ajv.validate(schema, pm.response.json())).to.be.true;
});

相关内容

最新更新