最近做了一个导数据的项目,需要从jira第三方平台将数据导入到airtable第三方平台。利用postman批量向airtable接口发送请求进行数据更新和导入,简便快捷~
利用postman批量更新的步骤如下:
1.把需要批量更新或创建的数据保存为一个json格式的文件
json文件格式为[{},{},{}]
另外需要对字符串进行处理,例如存在特殊字符串\\" \\s \\! \\' <\\! 时替换成如下格式
\" s ! ' <!
2.创建一个collection,用来配置各种请求参数
3.在collection中对请求的数据进行预处理(特殊字符串替换和清理)
此处每发一次请求前会被触发一次,如果是要读取准确好json文件,需要利用pm.iterationData函数,它会自动迭代json文件中的所有对象。需要我们从其中将需要预处理的字段取出,预处理完成再写回postman的pm变量中,以便请求时调用处理完的字段数据。
以下是本人处理代码片段,供参考:
//处理字符串中的特殊字符
var reg = new RegExp(/\\"/g);
var reg2 = new RegExp(/\\\\/g);
//将值转化为字符串重新存入postman待请求变量中
pm.variables.set('Serial Number', JSON.stringify(pm.iterationData.toJSON().values[0].value));
pm.variables.set('Status', JSON.stringify(pm.iterationData.toJSON().values[1].value));
pm.variables.set('Title', JSON.stringify(pm.iterationData.toJSON().values[2].value));
pm.variables.set('Model', JSON.stringify(pm.iterationData.toJSON().values[3].value));
pm.variables.set('Project', JSON.stringify(pm.iterationData.toJSON().values[4].value));
pm.variables.set('CreatTimeInJira', JSON.stringify(pm.iterationData.toJSON().values[5].value));
pm.variables.set('Type', JSON.stringify(pm.iterationData.toJSON().values[6].value));
pm.variables.set('Priority', JSON.stringify(pm.iterationData.toJSON().values[7].value));
pm.variables.set('Creator', JSON.stringify(pm.iterationData.toJSON().values[8].value));
pm.variables.set('Executive', JSON.stringify(pm.iterationData.toJSON().values[9].value));
pm.variables.set('Market', JSON.stringify(pm.iterationData.toJSON().values[10].value));
pm.variables.set('Describe', JSON.stringify(pm.iterationData.toJSON().values[11].value).replace(reg,'').replace(reg2,'\\'));
pm.variables.set('Comments', JSON.stringify(pm.iterationData.toJSON().values[12].value).replace(reg,'').replace(reg2,'\\'));
4.在collection中配置每个请求body的参数
此处针对预处理完成后的字段,在collection请求里配置好要传的变量,数据结构根据所请求接口要求进行设置。
5.创建Runner,将collection与准备好的json文件组装成完整数据读取、预处理、发送请求链条,完成批量数据更新操作。
点击右下方的Runner按钮,打开配置页面如下