Bruno中响应后脚本的onResponse函数无法执行,如何解决?
解决Bruno中响应后脚本onResponse函数不执行的问题
以下是几个可行的排查和解决步骤:
确认脚本类型正确
确保你在请求的「Post Response Script」标签页下编写脚本,而不是「Pre Request Script」或其他标签。只有响应后脚本的环境才会自动触发onResponse钩子。修改onResponse的定义方式
Bruno的脚本执行环境可能无法正确识别函数声明形式的onResponse,改成全局变量赋值的形式试试:onResponse = (res) => { const body = res.getBody(); console.log("Response body: ", body); } console.log("Test execution in Bruno");或者用普通函数赋值:
onResponse = function(res) { const body = res.getBody(); console.log("Response body: ", body); } console.log("Test execution in Bruno");升级Bruno到最新版本
部分旧版本的Bruno存在钩子函数绑定的bug,更新到官方最新稳定版能解决这类兼容性问题。排查函数内代码的问题
先简化onResponse内的代码,排除是具体逻辑导致的无输出:onResponse = (res) => { console.log("onResponse已触发!"); }如果这个能正常输出,再逐步添加
res.getBody()等代码,定位具体问题点。确认响应状态正常
虽然你提到请求成功,但还是检查下Bruno响应面板的状态码、响应体是否完全符合预期,个别情况下响应解析失败(比如格式错误)可能导致钩子函数不触发。
内容的提问来源于stack exchange,提问作者DTM
相关产品推荐
相关产品推荐

