ajg*_*ing 7 javascript postman
我有一个正在测试的 API,我希望responseBody它是一个 Json 对象(以“{”开头)。然而,由于意外事件,响应可能会作为数组返回(以“[”开头)。
如何确定responseBody使用 Postman 测试的类型(数组或对象)?
到目前为止,我所拥有的最好的是:当期待一个对象(不是一个数组)
var bodyJson = pm.response.json();
tests["Response should not be an array"] = !(bodyJson instanceof Array);
Run Code Online (Sandbox Code Playgroud)
你可以只使用:
pm.test('is an Array', () => pm.expect(pm.response.json()).to.be.an('array').but.not.an('object'))
Run Code Online (Sandbox Code Playgroud)
取自ChaiJS - 它内置于本机Postman应用程序中。
例如你有以下 json
{
"testA": [1, 2],
"testB": {"a": "b"}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用Array.isArray()
var bodyJson = pm.response.json();
tests["Response should not be an array"] = !Array.isArray(bodyJson['testA']); // false
//tests["Response should not be an array"] = !Array.isArray(bodyJson['testB']); // true
Run Code Online (Sandbox Code Playgroud)
或者
var bodyJson = pm.response.json();
pm.test("is Array Test", function() {
var notArray = !Array.isArray(bodyJson.testA) // false
// var notArray = !Array.isArray(bodyJson.testB) // true
pm.expect(notArray).to.eql(true);;
});
Run Code Online (Sandbox Code Playgroud)