Тест почтальона со сравнением с глобальной переменной - PullRequest
1 голос
/ 30 января 2020

Я хочу организовать два запроса в Почтальон . Первый ответ даст мне переменную. Я сохраняю этот идентификатор в глобальной переменной id. В Почтальоне эта переменная обычно доступна через {{id}}.

Затем я отправляю второй запрос с этим идентификатором (например, GET foo.bar/{{id}}). Теперь я хочу проверить, есть ли идентификатор и в результате.

Это то, что я пробовал в тестовом коде:

    var jsonData = pm.response.json();
    pm.expect(jsonData.id).to.eql({{id}});

, где id - это переменная из первый ответ (например, 72b302bf297a228a75730123efef7c41).

Ответ на второй запрос выглядит как sth. например:

{
    "id": "72b302bf297a228a75730123efef7c41"
}

Вот несколько примеров, которые тоже не сработали:

    var jsonData = pm.response.json();
    pm.expect(jsonData.id).to.eql("{{id}}");
    var jsonData = pm.response.json();
    var myId = {{id}};
    pm.expect(jsonData.id).to.eql(myId);

Мои Ожидание состоит в том, что тест будет положительным и `id из запроса будет найден в ответе.

У вас есть идея, как решить эту проблему?

Спасибо за помощь.

1 Ответ

1 голос
/ 30 января 2020

Синтаксис {{...}} не может использоваться таким образом, в среде с песочницей вам необходимо получить к нему доступ таким образом.

pm.expect(jsonData.id).to.eql(pm.globals.get('id'))

Синтаксис теста:

pm.test("IDs equal?", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.id).to.eql(pm.globals.get('id'))
});
...