调试API时,如何在Postman控制台中看到ChromeLogger输出?

时间:2019-09-15 02:58:13

标签: debugging postman remote-debugging chromelogger

我已经建立了ChromeLogger,浏览器扩展程序和后端库,它们工作正常。

但是,我正在开发一个在Postman中测试的API,而不是在浏览器中测试的API,因此我希望在控制台或响应预览中的某个位置在Postman中看到相同的调试日志。

有什么方法可以将扩展程序安装到Postman中,与浏览器扩展程序相同吗?

1 个答案:

答案 0 :(得分:0)

在阅读this article(解释了调试日志在标头中的编码方式)之后,我想我可以在Postman中编写一个响应后的“测试”来解压标头并将其记录到Postman控制台中。

This Postman article解释了如何通过编辑测试套件本身或文件夹来全局设置“测试”,因此您可以使这项工作非常像扩展,而不必将其添加到每个请求中。单击测试套件旁边的“ ...”省略号,单击“编辑”,选择“测试”选项卡,然后在下面输入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控制台中。