将返回的 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() 方法从文件中读取的。
提前致谢。
此致,
哈里
- 将 JSR223 Assertion 添加为
GET
请求的子项
将以下代码放入"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库。
我有一个 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() 方法从文件中读取的。
提前致谢。
此致, 哈里
- 将 JSR223 Assertion 添加为
GET
请求的子项 将以下代码放入"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库。