Postman Newman-向数组中添加字符串元素,以便为每次数据迭代打印到CSV
提前感谢您的帮助/支持 我使用Newman作为一个库来运行一个包含CSV文件和大量数据集的集合 我试图用从每个数据集的API响应检索的参数值更新CSV文件的副本 我一直在输出数据表中每一行的每个响应检索到的“成本”值 我想我知道问题是什么,我需要向数组中添加“getcost”。此行检索运行时的成本Postman Newman-向数组中添加字符串元素,以便为每次数据迭代打印到CSV,postman,newman,Postman,Newman,提前感谢您的帮助/支持 我使用Newman作为一个库来运行一个包含CSV文件和大量数据集的集合 我试图用从每个数据集的API响应检索的参数值更新CSV文件的副本 我一直在输出数据表中每一行的每个响应检索到的“成本”值 我想我知道问题是什么,我需要向数组中添加“getcost”。此行检索运行时的成本 const getcost = JSON.parse(data.response.stream.toString()).cost; 当我执行集合时,我得到下面的错误。检索每个数据集的成本,因为我已
const getcost = JSON.parse(data.response.stream.toString()).cost;
当我执行集合时,我得到下面的错误。检索每个数据集的成本,因为我已将每个请求的成本记录到控制台:
jsonData.data.map((item, index) => item.cost = getcost[index]);
^
TypeError: Cannot read property '0' of undefined
当我创建一个数组和硬编码值,即
const getcost = ['1.0','2.0','3.0','4.0','5.0','6.0','7.0','8.0','9.0']
然后使用下面的代码将值写入CSV,正如我所期望的那样
jsonData.data.map((item, index) => item.cost = getcost[index]);
我已将整个脚本包括在下面:
const { on } = require('events');
const fs = require ('fs');
const newman = require('newman');
const papa = require('papaparse');
//call newman.run to pass `options` object and wait for callback
newman.run({
collection: require('./Test1.postman_collection.json'),
reporters: 'cli',
iterationData: './costrequest_ddM.csv'
}, (error) => {
if (error) {
throw error;
}
console.log('Collection run complete');
}).on('request', (error, data) => {
if (error) {
throw error;
}
const getcost = JSON.parse(data.response.stream.toString()).cost;
//const getcost = ['1.0','2.0','3.0','4.0','5.0','6.0','7.0','8.0','9.0']
//console.log(getcost);
returnCostsToCSV(getcost);
});
function returnCostsToCSV(getcost){
fs.readFile('./costrequest_ddM.csv','utf8', (error, data) => {
if (error) {
throw error;
}
const jsonData = papa.parse(data, { header: true });
//jsonData.data[0].cost = getcost;
jsonData.data.map((item, index) => item.cost = getcost[index]);
const results = papa.unparse(jsonData.data);
fs.writeFile('./returnedcosts.csv', results, (error) => {
if (error) {
throw error;
}
});
console.log('Script complete, costs updated');
});
}
我已经解决了这个问题。我创建了一个数组,并为每次迭代将值推送到数组中