0

我有一个 API 可以将员工详细信息保存到数据库,我使用 HTTP POST API“/ empDetails ”发布数据,然后发布“emp_name”、“emp_id”和“emp_age”等详细信息

样本有效载荷,

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

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

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

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

这里使用 __FileToString() 方法从文件中读取 Post 有效负载。

提前致谢。

问候, 哈里

4

1 回答 1

1
  1. 添加JSR223 断言作为GET请求的子项
  2. 将以下代码放入“脚本”区域:

    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 - 一篇教程文章了解更多详细信息。


注意:对于更复杂的 JSON 结构,即如果有嵌套的JSON 数组,最好使用JSONAssert库。

于 2018-12-05T12:00:36.123 回答