Как использовать данные итерации с помощью newman

#database #rest #postman #newman

Вопрос:

У меня есть коллекция в Postman, которая загружает «объекты полезной нагрузки» из файла json и хочет запустить ее в newman из командной строки.

ОТПРАВИТЬ запрос

  • Тело: из почтового запроса, который я получил {{jsonBody}}
  • Сценарий предварительного запроса: логически pm.globals.set("jsonBody", JSON.stringify(pm.iterationData.toObject()));

и file.json файл с такого рода «объектами»:

 [
    {
    "data": {
        "propert1": 24,
        "property2": "24__DDL_VXS",
        ...
    },
        {
    "data": {
        "propert1": 28,
        "property2": "28__HDL_VDS",
        ...
    }
...
]
 

Работает как заклинание в «Почтальоне«.

Вот что я пытаюсь запустить в cmd.

 newman run 
-d file.json  
--global-var access_token=$TOK4EN 
--folder '/vlanspost' 
postman/postman_collection_v2.json

 

Основываясь на результатах, которые я получаю, похоже, что Ньюман не решает флаг:

-d, --iteration-data <path> Specify a data file to use for iterations (either JSON or CSV)

и просто передает в качестве полезной нагрузки буквально эту строку из раздела тела: {{jsonBody}}

У кого-нибудь есть такая же проблема ?

Тнх

Комментарии:

1. Я думаю, что Ньюман не знает, куда подавать file.json документы . Не могли бы вы попробовать добавить полный путь к файлу?

2. Привет @lucasnguyen17, я попытался указать полный путь, но получил тот же результат.

3. Я думаю, может ли файл, экспортированный из Postman, быть в каком-то неправильном формате? @lucasnguyen17

4. Я прикинул, что груз фактически решен из-итерации данных, но Ньюман необходимо прохождение этой полезной в некоторых искаженной форме — потому, что я использовал —verbose и Ньюман и скопировать/вставить тот же полезной нагрузки с помощью curl и из httpie (оба работают как шарм), но при использовании Ньюман — я вам 500 INTERNAL SERVER ERROR так колбе не будет даже обработать запрос и сверла будет автоматически кидать внутренняя ошибка сервера 500 @lucasnguyen17

5. ПОЭТОМУ я знаю, как newman отправлять полезную нагрузку. 1. Когда я отлаживаю свое приложение Flask в PyCharm и перехватываю полезную нагрузку запроса от newmam request.get_json() не существует — и она должна существовать (даже Почтальон отправляет данные в формате json) 2. при использовании postman/curl/httpie request.get_json() просто существует, поэтому экспорт почтальона должен быть каким-то образом неправильным. Я подозреваю эту строку в разделе предварительных запросов экспортируемой коллекции: "type": "text/javascript" @lucasnguyen17

Ответ №1:

Я так и сделал, и это сработало.

  1. Поместите коллекцию и файл данных в один каталог. Например:
 C:USERSDUNGUYENDESKTOPSO
        ---- file.json
        ___ SO.postman_collection.json
 
  1. Исходя из этого folder , сделайте newman команду.
 newman run .SO.postman_collection.json -d .file.json --folder 'vlanspost'
 
  1. Это и есть результат:

введите описание изображения здесь