Как передать все файлы данных CSV из папки в сценарий newman и выполнить? - PullRequest
0 голосов
/ 24 февраля 2020

Что я сделал?

У меня есть коллекция, которую нужно выполнить для набора наборов данных, который передается из файла данных CSV. Я могу выполнить с 1 файл данных CSV.

Что я ищу?

Мне нужно выполнить набор CSV-файлов из папки итеративно и передать файл в файл сценария newman.

Как выглядит скрипт newman?

    var fs = require('fs'),
    cheerio = require('cheerio'),
    path = require('path'),
    newman = require('newman'),
    os = require("os");

const directoryPath = path.join(__dirname, 'payload');

fs.readdir(directoryPath, function(err, files) {
    if (err) {
        return console.log('Invalid directory: ' + err);
    }
    files.forEach(function(file) {
        var dataFile = 'payload/' + file + ".csv";
        var dataLog = 'payload/' + file + ".txt";
        newman.run({
                reporters: 'cli',
                collection: 'valid-routes-finder.json',
                iterationData: dataFile,
                delayRequest: 500,
                iterationCount: 2
            })
            .on('start', function(err, args) {
                console.log(args);
                console.log(err);
            })
            .on('console', function(err, args) {
                var dataSupplied = args.messages[0];
                var totalRecords = dataSupplied.split(",")[0];
                if (parseInt(totalRecords) > 0) {
                    fs.appendFileSync(dataLog, dataSupplied);
                    fs.appendFileSync(dataLog, '\r\n');
                }
            })
            .on('error', function(err, summary) {
                console.log(err);
            })
            .on('done', function(err, summary) {
                console.log("Execution completed.");
            });
    });
});

Необходимая поддержка:

Я хотел бы динамически передать файл данных в новичок в скрипте для запуска для каждого файла данных CSV.

1 Ответ

0 голосов
/ 24 февраля 2020

Я нашел способ достичь этого. Извините за глупость. Объявлен метод и вызван.

var fs = require('fs'),
    path = require('path');
cheerio = require('cheerio'),
    newman = require('newman'),
    os = require("os");

const directoryPath = path.join(__dirname, 'payload');

fs.readdir(directoryPath, function(err, files) {
    if (err) {
        return console.log('Unable to scan directory: ' + err);
    }
    files.forEach(function(file) {
        runNewman(file);
    });
});

function runNewman(data) {

    var csvFile = "payload/" + data;
    var logFile = "payload/" + data + ".txt";

    newman.run({
            reporters: ['htmlextra', 'cli'],
            collection: 'valid-routes-finder.json',
            iterationData: csvFile,
            delayRequest: 100
        })
        .on('console', function(err, args) {
            var dataSupplied = args.messages[0];
            var totalRecords = dataSupplied.split(",")[0];
            if (parseInt(totalRecords) > 0) {
                fs.appendFileSync(logFile, dataSupplied);
                fs.appendFileSync(logFile, '\r\n');
            }
        })
        .on('done', function(err, summary) {
            console.log("Execution completed.");
        });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...