如何在Bruno脚本/响应后代码中发送请求?Postman代码迁移问题
Postman响应后脚本迁移至Bruno的修复方案
原Postman响应后脚本
Postman中用于发送后续请求并设置环境变量的脚本如下:
pm.sendRequest({ url: `${lambdaUrl}/finxact/accountnumber/${psnNumber}`, method: 'GET', header: { 'qa-test-id': 'pm-test-1', 'x-api-key': `${qa_lambda_key}` }, }, function(err, res) { pm.expect(res).to.have.property('code', 200); const acctNbr = res.json().data[0].acctNbr console.log(acctNbr) pm.environment.set("acctNbr",acctNbr) pm.environment.set("accountNumber", acctNbr) });
尝试的Bruno脚本(无法运行)
用户尝试转换后的脚本存在问题,无法正常执行:
req.setUrl(`${lambdaUrl}/finxact/accountnumber/${psnNumber}`); req.setMethod("GET") req.setHeaders({ "qa-test-id": "pm-test-1", "x-api-key": `${qa_lambda_key}` }); const status = res.getStatus(); let responseBody = res.getBody(); console.log(responseBody) // expect(responseBody).to.have.property('code', 200); // expect(res.status).to.equal(200); const acctNbr = responseBody.data[0].acctNbr console.log(acctNbr) bru.setEnvVar("acctNbr",acctNbr) bru.setEnvVar("accountNumber", acctNbr)
问题分析与修复后的Bruno脚本
核心问题点:
- Bruno中发送后续请求不能修改当前请求的
req对象,需使用bru.sendRequest方法,逻辑和Postman的pm.sendRequest一致 res.getBody()返回字符串格式,需手动解析为JSON对象才能提取字段- Bruno默认未内置
expect断言库,可手动实现状态码判断
正确的Bruno响应后脚本
// 发送后续请求 bru.sendRequest({ url: `${lambdaUrl}/finxact/accountnumber/${psnNumber}`, method: 'GET', headers: { 'qa-test-id': 'pm-test-1', 'x-api-key': `${qa_lambda_key}` } }, function(err, res) { // 手动判断状态码替代expect断言 if (err) { console.error("请求出错:", err); return; } if (res.getStatus() !== 200) { console.error("响应状态码异常:", res.getStatus()); return; } // 解析响应体为JSON const responseBody = JSON.parse(res.getBody()); const acctNbr = responseBody.data[0].acctNbr; console.log(acctNbr); // 设置环境变量 bru.setEnvVar("acctNbr", acctNbr); bru.setEnvVar("accountNumber", acctNbr); });
内容的提问来源于stack exchange,提问作者German Larcher
相关产品推荐
相关产品推荐

