Сценарий почтальона: почему он не работает? - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть пара запросов как часть моей коллекции, и я хотел установить переменную среды со значением из вывода ответа json.Эта переменная не определена в разделе «Управление средами».Обязательно ли мне сначала объявлять переменную среды в разделе «Управление средами»?Если я объявлю это в разделе «Управление», то это сработает.

const jsonData = pm.response.json();
pm.environment.set('sessionId', jsonData.sessionId);

Мой другой вопрос: я не понимаю, почему это происходит?У меня есть следующий фрагмент кода в одном из моих запросов.

{
    "sessionid": "15c3f72e-788f-423f-b1cc-5dca503ae859",
    "expires": "2019-02-17T20:57:20.24234222-08:00",
    "cookievalue": "MySession"
}

pm.test("Check if session id is returned"), function() {
    pm.expect(pm.response.text()).to.include("sessionid2");
}

Я удивлен, почему это работает?Он должен потерпеть неудачу, так как у меня нет sessionid2 в json resposnse.Я пробовал все другие способы, включая pm.response.json (), и ничего не работает.Кстати, как мне проверить, существует ли ключ в ответе json и не обязательно проверять значение, поскольку значение идентификатора сеанса может меняться каждый раз.

Кроме документов, кто-то может указать мне нахороший ресурс, чтобы узнать больше о сценариях почтальона?

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 20 ноября 2018

Первый вопрос, касающийся сохранения переменной среды, необходимо сначала создать файл среды, чтобы он знал , где , чтобы сохранить переменную.Вместо этого вы можете использовать функцию pm.globals.set(), если не хотите сначала создавать файл.

По второму вопросу похоже, что ваш синтаксис test неверен, поскольку вы закрыли тест, добавив дополнительный ) после названия теста.

Вместо этого должно работать что-то подобное:

pm.test("Check if session id is returned", function() {
    pm.expect(pm.response.json()).to.include.key("sessionid");
})
...