В Почтальоне я пытаюсь добиться следующего:
- В коллекции:
- Создать объект утилиты, содержащий многократно используемые функции
- Сохранить эту утилитуобъект в глобальной переменной для последующего использования в сценариях тестирования запроса.
- В запросе:
- Извлечение кода объекта утилиты из глобальных переменных.
- Подтвердите код и сохраните полученный экземпляр служебного объекта в локальной переменной.
- Вызовите метод для экземпляра служебного объекта.
Однако ни одна из многих реализаций, которые я видел, разбросанных по сети, не работает.Я могу пройти весь путь до шага 2.2, и тогда все просто умрут ужасной пламенной смертью.Механизм JavaScript под Postman отказывается оценивать объект, хранящийся в коллекции globals.
Чтобы изолировать проблему, я сократил это до минимального сценария, который помещается в сценарии предварительного запроса для моегоколлекция:
postman.setGlobalVariable("loadUtils", function utils() {
let utils = {};
utils.main = function() {
console.log("Hello, world!");
}
return utils;
} + ';utils()');
Затем я пытаюсь загрузить этот скрипт следующим образом:
var code = globals.loadUtils;
console.log(code);
var utils = eval('(' + code + ')');
Но всегда возникает следующая ошибка:
Произошла ошибкапри оценке тестового сценария: SyntaxError: неожиданный токен;
Я попытался:
- Преобразование всей функции в многострочную строку и сохранение этого результата в глобальной среде,Произошла та же ошибка.
- Включение заключающих скобки непосредственно в тело функции.Это тоже не сработало.
- Использование лямбда-выражений, но это вызвало всевозможные проблемы в самом редакторе.
Я уверен, что это что-то простое, глупоеи очевидно, и что я просто не вижу этого.
Может кто-нибудь указать, что я здесь не так делаю?
PS Это должно быть возможно, как предложено здесьStackOverflow и Форумы почтальонов на GitHub (хотя для просмотра решения требуется прокрутить комментарии).