2014-01-28 7 views
50

Я использую версию Postman для пакетных приложений для написания тестов против моего Rest API. Я пытаюсь управлять состоянием между последовательными испытаниями. Чтобы облегчить это, объект Postman, подверженный тестированию во время тестирования Javascript, имеет методы для установки переменных, но для чтения нет.Как читать переменные среды в тестах Postman?

postman.setEnvironmentVariable("key", value); 

Теперь я могу прочитать это значение в следующем вызове через {{ключ}} структуры, которая всасывает значения из текущей среды. НО, это не работает в тестах; он работает только в корпусе запроса.

Итак, есть ли прочь, чтобы прочитать этот материал из тестов?

ответ

75

Согласно документации here вы можете использовать

environment["foo"] OR environment.foo 
globals["bar"] OR globals.bar 

к ним доступ.

ie;

postman.setEnvironmentVariable("foo", "bar"); 

tests["environment var foo = bar"] = environment.foo === "bar"; 

postman.setGlobalVariable("foobar", "1"); 

tests["global var foobar = true"] = globals.foobar == true; 

postman.setGlobalVariable("bar", "0"); 

tests["global var bar = false"] = globals.bar == false; 
+3

Я заметил, что когда я устанавливаю глобальный var, я устанавливаю его как int; когда я прочитал его, это была строка. Поэтому мне нужно было разобрать его: тесты ["стресс"] = данные. Rating.RatingScoreList [1] .Value === parseInt (globals.stress); – Duncan

+8

Из документов [здесь] (https://www.getpostman.com/docs/environments): «Предупреждение - среда и глобальные переменные всегда будут храниться как строки. Если вы храните объекты/массивы, убедитесь, что JSON .stringify() перед хранением и JSON.parse() их при извлечении. " – GrayedFox

+0

Также обратите внимание, что глобалы не поддерживаются, если вы планируете использовать [почтовые мониторы] (https://www.getpostman.com/docs/v6/postman/monitors/intro_monitors), в то время как переменные среды. –

1

Почтальон обновил свою песочницу и добавил pm.* API. Хотя старше синтаксис для чтения переменных в сценарии тестирования все еще работает, в соответствии с docs:

После того, как переменная установлена, используется метод pm.variables.get() или альтернативно использовать метод pm.environment.get() или pm.global.get() в зависимости от соответствующая область для выборки переменной. Метод требует имя переменной в качестве параметра для получения хранимого значения в скрипте.