Postman Newman-向数组中添加字符串元素,以便为每次数据迭代打印到CSV

Postman Newman-向数组中添加字符串元素,以便为每次数据迭代打印到CSV,postman,newman,Postman,Newman,提前感谢您的帮助/支持 我使用Newman作为一个库来运行一个包含CSV文件和大量数据集的集合 我试图用从每个数据集的API响应检索的参数值更新CSV文件的副本 我一直在输出数据表中每一行的每个响应检索到的“成本”值 我想我知道问题是什么,我需要向数组中添加“getcost”。此行检索运行时的成本 const getcost = JSON.parse(data.response.stream.toString()).cost; 当我执行集合时,我得到下面的错误。检索每个数据集的成本,因为我已

提前感谢您的帮助/支持

我使用Newman作为一个库来运行一个包含CSV文件和大量数据集的集合

我试图用从每个数据集的API响应检索的参数值更新CSV文件的副本

我一直在输出数据表中每一行的每个响应检索到的“成本”值

我想我知道问题是什么,我需要向数组中添加“getcost”。此行检索运行时的成本

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');
    });
}

我已经解决了这个问题。我创建了一个数组,并为每次迭代将值推送到数组中