将返回的 Json 响应与发布的响应进行比较

Compare the returned Json response with the posted response

我有一个 API 可以将员工详细信息保存到数据库,我 post 使用 HTTP POST API 数据 API "/empDetails" 和我 post "emp_name"、"emp_id" 和 "emp_age"

等详细信息

示例负载,

{
 "emp_name": "Sam",
 "emp_age": "25",
 "emp_id": "M33214"
}

数据成功存储后,我将调用 GET "/empDetails" API 来读取 posted 员工详细信息。

现在我要验证返回的数据。 有时返回的订单可能会混乱。如何借助 JavaScript 或 Groovy 或 BeanShell 等任何语言使用任何自定义断言验证数据?

P.S:我可以添加文本响应包含并且可以比较键值对。 但是当键值对数量较多时,很难一直添加断言。例如:当前有效载荷只有 3 个键值对,示例有效载荷可能还有其他字段,如 "empReportingManager"、"empAccount" 等。

此处 Post 有效负载是使用 __FileToString() 方法从文件中读取的。

提前致谢。

此致, 哈里

  1. JSR223 Assertion 添加为 GET 请求的子项
  2. 将以下代码放入"Script"区域:

    def actual = new groovy.json.JsonSlurper().parseText(sampleResult.getResponseDataAsString())
    
    def expected = new groovy.json.JsonSlurper().parseText(new File('/path/to/request.json').text)
    
    if (actual != expected) {
        assertionResult.setFailureMessage(true)
        assertionResult.setFailureMessage('Mismatch between received and sent JSON')
    }
    

如果 JSON 有效载荷匹配响应(顺序并不重要)采样器将通过,否则您将收到 Mismatch between received and sent JSON 消息并且采样器将被标记为失败。

查看 Scripting JMeter Assertions in Groovy - A Tutorial 文章了解更多详情。


注意:对于更复杂的JSON结构,即如果有嵌套的JSON Arrays it's better to go for JSONAssert库。