【问题标题】:Newman library - return response data value for each iteration into csv纽曼库 - 将每次迭代的响应数据值返回到 csv
【发布时间】:2021-04-09 05:59:12
【问题描述】:

我正在使用 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
}

谢谢。

【问题讨论】:

  • 需要一个数组吗?
  • @PDHide - 不,在运行时为从 csv 导入的每个数据集捕获成本。
  • costReturned[index] 如果 index 不是数组,为什么会调用它。在将 costReturned 传递给函数之前还要打印它,看看它是否真的在检索它
  • 谢谢 - 问题是我没有将返回的成本传递到数组中。 ??????????

标签: postman newman


【解决方案1】:

costReturned 有可能超出词法范围。没有额外的信息是不可能辨别的。因此 - 提供准确、有用的答案也是不可能的。

我建议上传您的收藏。

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

【讨论】:

  • 函数应该被称为'returnCostToCSV'
猜你喜欢
  • 2016-04-03
  • 2020-04-21
  • 2018-02-27
  • 1970-01-01
  • 2021-12-02
  • 2020-12-17
  • 2020-08-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多