Ошибка при запуске скрипта Postman через Newman

Я пытаюсь запустить следующий сценарий Postman через Newman, чтобы записать ответ в файл:

  //verify http response code

    pm.test("Report Generated", function () {
    pm.response.to.have.status(200);
    });

    var fs = require('fs');

    var outputFilename = 'C:/Users/archit.goyal/Downloads/spaceReport.csv';
    fs.writeFileSync(outputFilename, pm.response.text());

Запрос дает ответ, но при записи в файл выдает следующую ошибку: 1? TypeError в тестовом скрипте

    ┌─────────────────────────┬──────────┬──────────┐
    │                         │ executed │   failed │
    ├─────────────────────────┼──────────┼──────────┤
    │              iterations │        1 │        0 │
    ├─────────────────────────┼──────────┼──────────┤
    │                requests │       20 │        0 │
    ├─────────────────────────┼──────────┼──────────┤
    │            test-scripts │       20 │        1 │
    ├─────────────────────────┼──────────┼──────────┤
    │      prerequest-scripts │        0 │        0 │
    ├─────────────────────────┼──────────┼──────────┤
    │              assertions │        2 │        0 │
    ├─────────────────────────┴──────────┴──────────┤
    │ total run duration: 1m 48.3s                  │
    ├───────────────────────────────────────────────┤
    │ total data received: 1.24MB (approx)          │
    ├───────────────────────────────────────────────┤
        │ average response time: 5.3s                   │
    └───────────────────────────────────────────────┘
 #  failure        detail

 1.  TypeError      fs.writeFileSync is not a function
                at test-script
                inside "3i_BMS_Amortization_Schedule / GetReport"

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

Если вы добавляете fs в тест Postman, это не сработает, поскольку это не один из модулей, которые вы можете вызывать из приложения. getpostman.com/docs/v6/postman/scripts/…

Danny Dainton 25.07.2018 17:00

Я добавил код в приложение, но запустил и вызвал его модули через Newman. Неужели и так не пойдет? Если нет, есть ли способ записать ответ (в текстовом формате) в файл CSV

Archit Goyal 26.07.2018 14:05

Это не сработает, если в приложении есть что-то, что не поддерживается. Разве вы не можете обработать это действие вне коллекции Postman и добавить что-то подобное прямо в сценарий Ньюмана? У Ньюмана есть варианты возврата данных ответа.

Danny Dainton 26.07.2018 17:35

Я пытаюсь сделать это только через newman. Я запускаю приведенный выше код с помощью newman, и ответ также из консоли newman. Было бы здорово, если бы вы могли поделиться любым фрагментом рабочего кода, который будет работать через newman, чтобы сохранить ответ.

Archit Goyal 27.07.2018 06:54

Если вы откроете коллекцию в пользовательском интерфейсе почтальона, будет ли приведенный выше код содержать оператор fs на вкладке Test? Если он там, значит, вы неправильно его используете с Ньюманом. Я бы добавил модуль fs, что бы я ни хотел с ним делать, к чему-то вроде этого - github.com/postmanlabs/newman/blob/develop/…

Danny Dainton 27.07.2018 12:22
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
1 820
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Сам Почтальон не может выполнять такие скрипты. Чтобы сохранить ваши ответы на все запросы api, вы можете создать сервер nodeJS, который будет вызывать api через newman, а затем сохранять ответ в локальный файл. Вот пример -

var fs = require('fs'),
newman = require('newman'),
allResponse=[],
outputFilename = 'C:/Users/archit.goyal/Downloads/spaceReport.csv';


newman.run({
collection: '//your_collection_name.json', 
iterationCount : 1
})
.on('request', function (err, args) {
if (!err) {

    //console.info(args); // --> args contain ALL the data newman provides to this script.
    var responseBody = args.response.stream,
        response = responseBody.toString();
    allResponse.push(JSON.parse(response));
   }
 })

.on('done', function (err, summary) {
fs.writeFile(outputFilename,"");
for(var i =0;i<allResponse.length;i++)
{
    fs.appendFileSync(outputFilename,JSON.stringify(allResponse[i],null,5));
}
});

Обратите внимание, что приведенный выше код сохранит только ответы. Другие данные, такие как запрос или UR1, могут быть извлечены аналогичным образом. Чтобы запустить это, установите newman в тот же каталог, что и сценарий, затем запустите сценарий, используя -

node file_name.js

@ArchitGoyal, если мой ответ вам помог, вы можете принять мой ответ, щелкнув пустую галочку, которая станет зеленой :)

Shivam Mishra 06.09.2018 14:49

Другие вопросы по теме