纽曼库 - 将每次迭代的响应数据值返回到 csv 中

时间:2021-04-08 18:19:54

标签: postman newman

我正在使用 newman 库运行数据驱动的邮递员集合。我正在尝试将每个数据集的“成本”值写入 CSV,位于第 4 列(下面的示例 CSV)。

我已经使用事件“请求”提取了“成本”值并创建了一个函数来将该值写入 csv。

}).on('request', (error, data) => {
    if (error) {
        throw error;
    } 
    var costReturned = JSON.parse(data.response.stream.toString()).cost;
    returnCost(costReturned );
});

function returnCost(costReturned){
    fs.readFile('./testcsv.csv','utf8', (error, data) => {
        if (error) {
            throw error;
        }
        const jsonData = papa.parse(data, { header: true });
        jsonData.data.map((item, index) => item.cost = costReturned[index]);
        const returnedCostsCSV = papa.unparse(jsonData.data);       
        fs.writeFile('./returnedCosts.csv', returnedCostsCSV, (error) => {
            if (error) {
                throw error;
            }
        });

但是,我收到此错误。我不确定是否需要创建一个循环来遍历每个数据集并在每个请求的每一行中写入成本,或者是否有其他方法。

jsonData.data.map((item, index) => item.cost= costReturned[index]);
TypeError: Cannot read property '0' of undefined

CSV,
ID,name,address,cost
1,test1, 233 homes street,-
2, test2, 244 highem road,-
3, test3, 1 high str,-

Example Response body:
{
    "cost": 48.00,
    "min": 4.000,
    "max": 266.95
}

谢谢。

1 个答案:

答案 0 :(得分:0)

costReturned 有可能在词法上越界。没有附加信息就无法辨别。因此 - 提供准确、有用的答案也是不可能的。

我建议上传您的收藏。

我还建议将“returnCost”解耦或重命名。看来,返回成本肯定不是该函数所做的。 ¯\_(ツ)_/¯