【问题标题】:How to check unwanted parameters in response body in Postman?如何检查 Postman 响应正文中不需要的参数?
【发布时间】:2021-08-10 17:56:52
【问题描述】:

以下面的响应体为例,响应体的有效参数只有StatusCode和Message。我们可以添加断言并轻松检查字段是否具有正确的值。

现在,我想检查响应中是否填充了任何不需要的参数,并在这种情况下进行更正。有没有办法使用测试断言在邮递员中检查这一点?

{
    "statusCode": 200,
    "message": "Here is the detail message",
    "data": "Unwanted parameter"
    "UnwantedLink": "www.unwantedlink.com"

}

【问题讨论】:

    标签: api testing postman response assertion


    【解决方案1】:

    您可以使用 chaijs 检查密钥

    const res = pm.response.json();
    
    pm.test("check keys in response", () => {
        pm.expect(res).have.all.keys("statusCode", "message");
    })
    

    以下示例 2 例

    【讨论】:

    • 太棒了!这就是我一直在寻找的。它对我有用。问题是,如果有子字段,我们需要为这些子字段添加另一个断言。谢谢@lucasnguyen17
    • 你可以探索chaijs函数,我认为他们可能有一个深度比较2个json对象的键的函数。
    【解决方案2】:

    使用 json 模式验证:

    您可以使用https://www.jsonschema.net/home 生成架构,单击设置和设置并设置选项,例如:

    schema = {
    
    "type": "object",
    "properties": {
        "statusCode": { "type": "integer" },
        "message": { "type": "string" }
    },
    "additionalProperties": false
    };
    
    
    
    pm.response.to.have.jsonSchema(schema)
    

    【讨论】:

    • 这个也不错。但这会在测试中添加更多代码行,这是我会避免的。 @PDHide 感谢您的回答。
    • @VikasKumar 更多代码行!= 模式,两者都是不同的东西。架构验证用于 api 合同验证,在进行 api 测试时必须这样做
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-02
    • 2018-09-16
    • 1970-01-01
    • 2020-07-26
    • 2022-06-21
    • 2017-04-22
    相关资源
    最近更新 更多