Тест, экспортированный из почтальона, не выполняется в newman - PullRequest
0 голосов
/ 04 декабря 2018

Мы экспортировали коллекцию тестов из Postman (используя файл json с тестами и отдельный файл json с переменными среды), попробуйте запустить как newman run tests.json -e environment.json с этимset: вывод сбивает с толку:

┌─────────────────────────┬──────────┬──────────┐
│                         │ executed │   failed │
├─────────────────────────┼──────────┼──────────┤
│              iterations │        1 │        0 │
├─────────────────────────┼──────────┼──────────┤
│                requests │       12 │        6 │
├─────────────────────────┼──────────┼──────────┤
│            test-scripts │        6 │        0 │
├─────────────────────────┼──────────┼──────────┤
│      prerequest-scripts │        0 │        0 │
├─────────────────────────┼──────────┼──────────┤
│              assertions │       28 │        0 │
├─────────────────────────┴──────────┴──────────┤
│ total run duration: 819ms                     │
├───────────────────────────────────────────────┤
│ total data received: 9.8KB (approx)           │
├───────────────────────────────────────────────┤
│ average response time: 156ms                  │
└───────────────────────────────────────────────┘

Количество пройденных утверждений (28) предполагает, что все тесты в порядке.Но ... на самом деле в коллекции только 6 запросов, поэтому кажется, что запросы выполняются дважды, и одно из выполнений завершается неудачно, так как не происходит какое-либо расширение переменных ....

Это то, чтовывод говорит (6 раз): 1. Ошибка Неверный URI " http: ///% 7B% 7Bendpoint% 7D% 7D / products / 4 "
при запросе внутри ""

Таким образом, это означает, что переменные среды не заполняются в этих запросах.

Фрагмент файла tests.json выглядит следующим образом:

 {
    "name": "AppStore BackEnd BAKERY_PRODUCT 4 test",
    "event": [
    {
       "listen": "test",
       "script": {
         "id": "0e074806-1248-4446-865d-9e0f3d733ba2", "exec":[
           "pm.sendRequest(\"http://{{endpoint}}/products/4\", function (err, response) {",
                                                    "    ",
                                                    "    pm.test(\"Status code is 200\", function () {",
                                                    "        pm.response.to.have.status(200);",
                                                    "    });",
                                                    "    ",
                                                    "});"
                                            ],
                                            "type": "text/javascript"
                                    }
                            }
                    ],
                    "request": {
                            "method": "GET",
                            "header": [],
                            "body": {
                                    "mode": "raw",
                                    "raw": ""
                            },
                            "url": {
                                    "raw": "http://{{endpoint}}/products/4",
                                    "protocol": "http",
                                    "host": [
                                            "{{endpoint}}"
                                    ],
                                    "path": [
                                            "products",
                                            "4"
                                    ]
                            }
                    },
                    "response": []
            },

Любые подсказки ???

1 Ответ

0 голосов
/ 04 декабря 2018

Попробуйте сделать это на вкладке Tests, а затем экспортируйте коллекцию:

pm.sendRequest(`${pm.environment.get('endpoint')}/products/4`, (err, response) => {
    pm.test("Status code is 200", () => {
        pm.response.to.have.status(200)
    })
})

Использование {{endpoint}} на этой вкладке не позволит понять, на что ссылаться.Вы можете использовать их таким образом только для URL, параметров URL, заголовков, авторизации, тела запроса и предустановок заголовка.

https://www.getpostman.com/docs/v6/postman/environments_and_globals/variables#accessing-variables-in-the-request-builder

...