在邮递员测试中获取请求 JSON

che*_*ate 4 testing api json postman

我的邮递员测试的请求正文是 JSON 数据:

{
    "key_outer": {
         "key_inner: "value"
    }
}
Run Code Online (Sandbox Code Playgroud)

在 Postman 测试中,我尝试将部分响应(也是 JSON)与部分请求进行比较。我可以得到回应

var response = pm.response.json();
Run Code Online (Sandbox Code Playgroud)

我可以访问任何对象,例如使用response.key_outer.key_inner. 但是当我尝试对请求进行相同操作时,它不起作用:

var response = pm.response.json().key_outer.key_inner;  // TypeError: pm.request.json is not a function
var response = pm.response.json.key_outer.key_inner;  // TypeError: Cannot read properties of undefined (reading 'key_outer')
var response = pm.response.body.key_outer.key_inner;  // TypeError: Cannot read properties of undefined (reading 'key_inner')
var response = pm.response.body.json().key_outer.key_inner;  // TypeError: pm.request.json is not a function
var response = pm.response.body.json.key_outer.key_inner;  // TypeError: Cannot read properties of undefined (reading 'key_outer')
var response = pm.response.body.toJSON().key_outer.key_inner;  // TypeError: Cannot read properties of undefined (reading 'key_inner')
Run Code Online (Sandbox Code Playgroud)

我哪里出错了?

che*_*ate 6

运行console.log(pm.request.body)表明它是一个原始字符串,所以

var request = JSON.parse(pm.request.body.raw);
Run Code Online (Sandbox Code Playgroud)

给出了预期的结果。