0


Postman实例 - 将API返回体输出到文件

背景:

之前有写过贴子Jmeter实例 - 将报错API请求体和返回体输出到文档,当时有一个遗留问题,就是这个脚本在Windows上运行是好的,但是在Mac上就无法保存成功,一直未找到根本原因。最近我们又遇到类似的问题,我们需要将一个API返回体保存进文件,而且公司全部使用Macbook,我就准备找一下postman 有没有处理方法,诚不欺我,我居然在官网上找到了解决方案。yyds!


解决方案

官网Write Response to File上有描述,有脚本,可谓手把手教学了。
在这里插入图片描述
只需要本地下载一下项目git clone https://github.com/sivcan/ResponseToFile-Postman,下载后执行npm i安装依赖,node scripts.js 在本地起一下监听服务;
在需要保存返回体的API接口的Tests模块中加入以下脚本:

// The opts for the server, also includes the data to be written to file
let opts = {
    requestName: request.name || request.url,
    fileExtension: 'json',
    mode: 'writeFile', // Change this to any function of the fs library of node to use it.
    uniqueIdentifier: false,
    responseData: pm.response.text()
};

pm.sendRequest({
    url: 'http://localhost:3000/write',
    method: 'POST',
    header: 'Content-Type:application/json',
    body: {
        mode: 'raw',
        raw: JSON.stringify(opts)
    }
}, function (err, res) {
    console.log(res);
});

Send Request后,本地ResponseToFile-Postman项目的Responses文件夹中就会生成对应的json文件,方便又快捷;
在这里插入图片描述
我的小伙伴又对我提起了新的要求,他希望response文件不是json格式,最好是csv这种,他这是一个get请求,请求体里面的值需要做参数化,请求如下https://xxx/segment-management/v1/segments/{{segment_id}}, segment_id存在一个文件中;

json改csv这是postman官网中明确表示支持的,但是目前保存文件命名是按request_name来的,同一个文件会被覆盖,所以只有最后一条记录的返回体会被保存,我们需要将写文件改成append文件。官网仔细拜读,依旧支持,mode由writeFile改成appendFile即可,优秀!

我将原有的脚本做了一下更新:
1)fileExtension由json改成csv;
2)mode由writeFile改成appendFile;
3) responseData仅返回value值,delimiter设置成逗号(小细节加换行);

var jsonData = pm.response.json();

// The opts for the server, also includes the data to be written to file
let opts = {
    requestName: request.name  || request.url,
    fileExtension: 'csv',
    mode: 'appendFile', // Change this to any function of the fs library of node to use it.
    uniqueIdentifier: false,
    responseData: jsonData.id + "," + jsonData.name + jsonData.createdAt + "," +jsonData.updatedAt+"," + jsonData.status + "\n"
};

pm.sendRequest({
    url: 'http://localhost:3000/write',
    method: 'POST',
    header: 'Content-Type:application/json',
    body: {
        mode: 'raw',
        raw: JSON.stringify(opts)
    }
}, function (err, res) {
    console.log(res);
});

完美满足小伙伴的要求,开心!


本文转载自: https://blog.csdn.net/qq_31180831/article/details/124739490
版权归原作者 测试小白_300 所有, 如有侵权,请联系我们删除。

“Postman实例 - 将API返回体输出到文件”的评论:

还没有评论