如何校验编码/加密后的响应数据?
问题描述:某个 API 定义内指定的返回响应是 JSON 格式,但服务器实际返回的是 Base64 编码后的字符串,此时“校验响应”功能会提示响应不符合接口定义并报错。
解决方案:为了解决此问题,你可以在后置脚本中添加自定义脚本,将 Base64 解码为 jsonString
,并且使用 pm.response.setBody(jsonString)
而非 pm.response.body = jsonString
语法。
示例代码:
var cryptoJs = require("crypto-js");
var response = pm.response.text();
var intermediate = cryptoJs.enc.Base64.parse(response);
var jsonString = cryptoJs.enc.Utf8.stringify(intermediate);
pm.response.setBody(jsonString);
然后再添加提取断言步骤,确保能够通过校验响。