调试 API 时如何在 Postman 控制台中查看 ChromeLogger 输出?
How can I see ChromeLogger output in the Postman console when debugging an API?
我已经设置了 ChromeLogger、浏览器扩展和后端库,效果很好。
但是我正在开发一个 API,我在 Postman 中而不是在浏览器中测试它,所以我想在 Postman 中的控制台或响应预览中的某个地方看到相同的调试日志。
有没有办法在 Postman 中安装扩展程序,就像浏览器扩展程序一样?
阅读 this article 后,它解释了调试日志是如何在 header 中编码的,我想我可以在 Postman 中写一个 post-response "test" 来解包header 并将其登录到 Postman 控制台。
This Postman article 解释了如何通过编辑测试套件本身或文件夹来全局设置 "test",这样您就可以像扩展一样工作,而不必将其添加到每个请求中.单击测试套件旁边的“...”省略号,单击“编辑”,选择“测试”选项卡并输入下面的 JavaScript 代码。
我尝试了三种输出数据的方法,如评论中所述,每种方法各有优缺点。
// Decode any ChromeLogger data
var chromelogger = postman.getResponseHeader("X-ChromeLogger-Data");
if(chromelogger){
chromelogger = JSON.parse(atob(chromelogger));
if(chromelogger){
// Native objects - well structured, but you have to expand all the rows every time... tedious!
//console.log(chromelogger);
// Raw JSON - always visible but can be hard to read
// console.log(atob(postman.getResponseHeader("X-ChromeLogger-Data")));
// For known structures, you can display it yourself
chromelogger.rows.forEach( row => {
console.log(row[1]); // display source line
row[0].forEach(log => {
console.log(log);
})
})
}
}
现在,当您 运行 进行任何测试时,所有 Chromelogger 调试都会显示在 Postman 控制台中。
我已经设置了 ChromeLogger、浏览器扩展和后端库,效果很好。
但是我正在开发一个 API,我在 Postman 中而不是在浏览器中测试它,所以我想在 Postman 中的控制台或响应预览中的某个地方看到相同的调试日志。
有没有办法在 Postman 中安装扩展程序,就像浏览器扩展程序一样?
阅读 this article 后,它解释了调试日志是如何在 header 中编码的,我想我可以在 Postman 中写一个 post-response "test" 来解包header 并将其登录到 Postman 控制台。
This Postman article 解释了如何通过编辑测试套件本身或文件夹来全局设置 "test",这样您就可以像扩展一样工作,而不必将其添加到每个请求中.单击测试套件旁边的“...”省略号,单击“编辑”,选择“测试”选项卡并输入下面的 JavaScript 代码。
我尝试了三种输出数据的方法,如评论中所述,每种方法各有优缺点。
// Decode any ChromeLogger data
var chromelogger = postman.getResponseHeader("X-ChromeLogger-Data");
if(chromelogger){
chromelogger = JSON.parse(atob(chromelogger));
if(chromelogger){
// Native objects - well structured, but you have to expand all the rows every time... tedious!
//console.log(chromelogger);
// Raw JSON - always visible but can be hard to read
// console.log(atob(postman.getResponseHeader("X-ChromeLogger-Data")));
// For known structures, you can display it yourself
chromelogger.rows.forEach( row => {
console.log(row[1]); // display source line
row[0].forEach(log => {
console.log(log);
})
})
}
}
现在,当您 运行 进行任何测试时,所有 Chromelogger 调试都会显示在 Postman 控制台中。