PostMan 测试脚本:检查响应内容 JSON
PostMan Test scripts: Inspecting contents of response JSON
这里是 PostMan 6.0.10。我试图更好地理解如何编写测试脚本,并且在阅读了他们的其他内容后 superb documentation 我仍然对如何查询和检查从请求返回的 JSON 响应感到困惑。
具体来说,给定以下 JavaScript 片段:
pm.test("Verify the contents of the response payload are correct", function () {
// ???
});
我需要能够查询响应 JSON 和:
- 确定响应是单个 JSON 对象还是 JSON 个对象的数组
- 如果是数组,确定大小(数组中元素的数量)
- 否则,如果它是单个对象,我需要能够查询该对象的特定字段(例如,一个名为“
fizzbuzz
”的字段)并获取值和 JSON 类型(这些字段的字符串、数字、布尔值、空值)
场景 #1:JSON 响应是一个数组
示例:
[
{
"fizz": "buzz",
"foo": 53
},
{
"fizz": "bozz",
"foo": 291
}
]
场景 #2:JSON 响应是单个对象
示例:
{
"fizz": "buzz",
"foo": 293
}
知道如何执行这种 JSON 响应负载检查吗?
这是基本的,但应该可以得到动力:
pm.test("Verify payload of example one", () => {
pm.expect(pm.response.json()[0].fizz).to.equal('buzz')
pm.expect(pm.response.json()[0].foo).to.equal(53)
pm.expect(pm.response.json()[1].fizz).to.equal('bozz')
pm.expect(pm.response.json()[1].foo).to.equal(291)
});
pm.test("Verify payload of example two", () => {
pm.expect(pm.response.json().fizz).to.equal('buzz')
pm.expect(pm.response.json().foo).to.equal(293)
});
可能值得研究一些基本的 JavaScript 以及如何解析 JSON objects。
//你可以这样做
if (responseCode.code === 200) {
var jsonDataArray;
var jsonArray= JSON.parse(responseBody);
var found=false;
for (var i = 0;i<jsonArray.length;i++){`enter code here`
jsonDataArray = jsonArray[i];
for (var j = 0; j<jsonDataArray.length && found === false;j++){
if (jsonDataArray[j].fizz === "buzz" && jsonDataArray[j].foo === 53)
这里是 PostMan 6.0.10。我试图更好地理解如何编写测试脚本,并且在阅读了他们的其他内容后 superb documentation 我仍然对如何查询和检查从请求返回的 JSON 响应感到困惑。
具体来说,给定以下 JavaScript 片段:
pm.test("Verify the contents of the response payload are correct", function () {
// ???
});
我需要能够查询响应 JSON 和:
- 确定响应是单个 JSON 对象还是 JSON 个对象的数组
- 如果是数组,确定大小(数组中元素的数量)
- 否则,如果它是单个对象,我需要能够查询该对象的特定字段(例如,一个名为“
fizzbuzz
”的字段)并获取值和 JSON 类型(这些字段的字符串、数字、布尔值、空值)
场景 #1:JSON 响应是一个数组
示例:
[
{
"fizz": "buzz",
"foo": 53
},
{
"fizz": "bozz",
"foo": 291
}
]
场景 #2:JSON 响应是单个对象
示例:
{
"fizz": "buzz",
"foo": 293
}
知道如何执行这种 JSON 响应负载检查吗?
这是基本的,但应该可以得到动力:
pm.test("Verify payload of example one", () => {
pm.expect(pm.response.json()[0].fizz).to.equal('buzz')
pm.expect(pm.response.json()[0].foo).to.equal(53)
pm.expect(pm.response.json()[1].fizz).to.equal('bozz')
pm.expect(pm.response.json()[1].foo).to.equal(291)
});
pm.test("Verify payload of example two", () => {
pm.expect(pm.response.json().fizz).to.equal('buzz')
pm.expect(pm.response.json().foo).to.equal(293)
});
可能值得研究一些基本的 JavaScript 以及如何解析 JSON objects。
//你可以这样做
if (responseCode.code === 200) {
var jsonDataArray;
var jsonArray= JSON.parse(responseBody);
var found=false;
for (var i = 0;i<jsonArray.length;i++){`enter code here`
jsonDataArray = jsonArray[i];
for (var j = 0; j<jsonDataArray.length && found === false;j++){
if (jsonDataArray[j].fizz === "buzz" && jsonDataArray[j].foo === 53)