📚 开源资源分享——颜佐光的个人书架
✉️ 联系站长
书架 / 测试 / 自动化

Postman父查询子加载测试

2019-04-06 18:30 · 约 4,987 字 · 浏览 2,809 次 · 更新 2020-05-17 11:12自动化

新建Collection

新建环境变量

  • 名称为 demo_url ,值为 http://127.0.0.1:9800。
  • 名称为 query_id ,值为空,不为空则为需要查询的值,可以不填写。
  • 名称为 query_name ,值为空,不为空则为需要查询的值,可以不填写。

全局检测设置

右击 Collection -> Edit -> Tests

var res = JSON.parse(responseBody);
pm.test('statusOk', function () {
    var result = res.code=="00";
    pm.expect(result).is.be.true //如何状态不等于00,则失败
});

一、新建Request名称为 "查询"

  • 请求地址: {{demo_url}}/demo/query
  • 请求参数:
{
    "id":"{{query_id}}",
    "name":"{{query_name}}"
}
  • Tests代码:
var res = JSON.parse(responseBody);
var data = res.data;
var list = data.list;
pm.globals.set("list", list);
pm.globals.set("index", 0);
console.log(list)
  • 请求结果示例:
{
    "code": "00",
    "message": "处理成功",
    "data": {
        "pageIndex": 1,
        "pageSize": 20,
        "pageTotal": 3,
        "list": [
            {
                "id": "1",
                "name": "2"
            },
            {
                "id": "2",
                "name": "2"
            },
            {
                "id": "777",
                "name": "666"
            }
        ],
        "pageStart": 0,
        "pageEnd": 20
    },
    "target": null
}

二、新建Request 名称为“加载”

  • 请求地址:{{demo_url}}/demo/load
  • 请求参数:
{
    "id":"{{id}}"
}
  • Pre-request Scripts 代码:
var index = pm.globals.get("index");
var list = pm.globals.get("list");
var id = list && list[index] && list[index].id || "";
console.log("id:" + id + " index:" + index);
pm.globals.set("id",id);
pm.globals.set("index", ++index);

Tests代码:

var index = pm.globals.get("index");
var list = pm.globals.get("list");
if(list.length>index) {
    postman.setNextRequest('加载');
}else {
    postman.setNextRequest(null);
}

三、运行集合

四、最终项目文件

  • tbd-demo.postman_collection.json
{
    "info": {
        "_postman_id": "1a07ea40-79ba-49ba-ae2e-7493c15b52b0",
        "name": "tbd-demo",
        "description": "请求DEMO",
        "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
    },
    "item": [
        {
            "name": "查询",
            "event": [
                {
                    "listen": "test",
                    "script": {
                        "id": "d1b6c725-afd0-4ed8-968d-ad80b8c6aedd",
                        "exec": [
                            "var res = JSON.parse(responseBody);\r",
                            "var data = res.data;\r",
                            "var list = data.list;\r",
                            "pm.globals.set(\"list\", list);\r",
                            "pm.globals.set(\"index\", 0);\r",
                            "console.log(list)"
                        ],
                        "type": "text/javascript"
                    }
                }
            ],
            "request": {
                "method": "POST",
                "header": [
                    {
                        "key": "Content-Type",
                        "name": "Content-Type",
                        "value": "application/json",
                        "type": "text"
                    }
                ],
                "body": {
                    "mode": "raw",
                    "raw": "{\n\t\"id\":\"{{query_id}}\",\n\t\"name\":\"{{query_name}}\"\n}"
                },
                "url": {
                    "raw": "{{demo_url}}/demo/query",
                    "host": [
                        "{{demo_url}}"
                    ],
                    "path": [
                        "demo",
                        "query"
                    ]
                },
                "description": "请求"
            },
            "response": []
        },
        {
            "name": "加载",
            "event": [
                {
                    "listen": "prerequest",
                    "script": {
                        "id": "815403e9-bdc1-43bf-a143-a118e864586d",
                        "exec": [
                            "var index = pm.globals.get(\"index\");\r",
                            "var list = pm.globals.get(\"list\");\r",
                            "var id = list && list[index] && list[index].id || \"\";\r",
                            "console.log(\"id:\" + id + \" index:\" + index);\r",
                            "pm.globals.set(\"id\",id);\r",
                            "pm.globals.set(\"index\", ++index);"
                        ],
                        "type": "text/javascript"
                    }
                },
                {
                    "listen": "test",
                    "script": {
                        "id": "b6ad4618-8207-4dea-b651-205da10c9fff",
                        "exec": [
                            "var index = pm.globals.get(\"index\");\r",
                            "var list = pm.globals.get(\"list\");\r",
                            "if(list.length>index) {\r",
                            "    postman.setNextRequest('加载');\r",
                            "}else {\r",
                            "    postman.setNextRequest(null);\r",
                            "}"
                        ],
                        "type": "text/javascript"
                    }
                }
            ],
            "request": {
                "method": "POST",
                "header": [
                    {
                        "key": "Content-Type",
                        "name": "Content-Type",
                        "value": "application/json",
                        "type": "text"
                    }
                ],
                "body": {
                    "mode": "raw",
                    "raw": "{\n\t\"id\":\"{{id}}\"\n}"
                },
                "url": {
                    "raw": "{{demo_url}}/demo/load",
                    "host": [
                        "{{demo_url}}"
                    ],
                    "path": [
                        "demo",
                        "load"
                    ]
                },
                "description": "加载数据"
            },
            "response": []
        }
    ],
    "event": [
        {
            "listen": "prerequest",
            "script": {
                "id": "c3c80252-3908-439c-93e3-024fa6ef37e0",
                "type": "text/javascript",
                "exec": [
                    ""
                ]
            }
        },
        {
            "listen": "test",
            "script": {
                "id": "e2005847-c784-4cdf-91e5-9e843a83481d",
                "type": "text/javascript",
                "exec": [
                    "var res = JSON.parse(responseBody);",
                    "pm.test('statusOk', function () {",
                    "    var result = res.code==\"00\";",
                    "    pm.expect(result).is.be.true // 如果用户email不存在,断言则会失败",
                    "});",
                    ""
                ]
            }
        }
    ]
}
← 返回《测试》目录书架 →