newman - 如何将文件夹下的所有 CSV 数据文件提供给 newman 脚本并执行?
问题描述
我做了什么?
我有一个集合,需要为从 CSV 数据文件传递的一组数据集执行该集合。我可以使用 1 个 CSV 数据文件执行。
我在寻找什么?
我需要迭代地执行文件夹中的 CSV 文件集并将文件提供给 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.");
});
});
});
需要支持:
我想将数据文件动态地传递给 newman,以便为每个 CSV 数据文件运行脚本。
解决方案
我找到了实现这一目标的方法。对不起,我很愚蠢。声明一个方法并调用。
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.");
});
}
推荐阅读
- python - Pip 升级问题 && Pytest 问题 && MAC OS 不合作
- javascript - GWT FlowPanel 不显示内容
- pyspark - spark没有下载hive_metastore jars
- amazon-web-services - 如何在 docker 容器上运行 ansible-playbook 以在 AWS EC2 Ubuntu 实例上执行命令?
- google-app-engine - 具有 Channels websockets 的 Elixir Phoenix 应用程序无法在 Google AppEngin 上运行
- azure-devops - Set-AzKeyVaultAccessPolicy 的服务主体所需的 Azure AD 权限
- vba - 根据条件隐藏记录的组合框
- json - 如何在ansible playbook中获取json_query显示属性名称
- excel - 在 Excel 2019 中组合 MID 和 LEFT 函数
- javascript - 基于对象值的vue风格绑定