JSON 基于 CSV 数据的响应验证
JSON Response validation based on a CSV data
我有一个 REST 服务,它会给出 JSON 响应,如下所示
{
"id": 1,
"first_name": "George",
"last_name": "Bluth",
"avatar": "Test1"
},
{
"id": 2,
"first_name": "Janet",
"last_name": "Weaver",
"avatar": "Test2"
},
{
"id": 3,
"first_name": "Emma",
"last_name": "Wong",
"avatar": "Test3"
}
我想将这些响应与 SQL/Oracle 数据库进行比较,以检查数据是否正确(来自数据库的数据被提取到一个 CSV 文件中,该文件是基本内衬数据)
我的问题:
- 有没有什么方法可以自动将响应正文导出为 CSV 格式? - 这样我就可以比较两个 CSV
- 从 csv 文件 中逐个单元格读取数据以遍历每个 JSON 数组 的任何方法验证的响应正文
- 如果以上几点无法用任何工具完成,请提出正确的方法。我尝试了很多 API 测试工具,但没有成功
提前致谢。
如果您想将 CSV 格式的响应打印到文件中,只需添加 JSR223 PostProcessor 作为上述 returns 请求的子项 JSON 并输入以下代码进入 "Script" 区域:
def json = new groovy.json.JsonSlurper().parse(prev.getResponseData())
def csvFile = new File('/path/to/csv/file')
json.each {entry ->
csvFile << entry.getValue() + ','
}
csvFile << System.getProperty('line.separator')
有关在 JMeter 测试中使用 Groovy 脚本的更多详细信息,请参阅 Apache Groovy - Why and How You Should Use It 文章。
另请注意,您可以直接使用以下方法执行断言:
- JSON Extractor 读取单个值(或来自 HTTP 请求的整个响应)
- JDBC PostProcessor 从数据库中读取单个值
- Response Assertion 比较值
我有一个 REST 服务,它会给出 JSON 响应,如下所示
{ "id": 1, "first_name": "George", "last_name": "Bluth", "avatar": "Test1" },
{ "id": 2, "first_name": "Janet", "last_name": "Weaver", "avatar": "Test2" },
{ "id": 3, "first_name": "Emma", "last_name": "Wong", "avatar": "Test3" }
我想将这些响应与 SQL/Oracle 数据库进行比较,以检查数据是否正确(来自数据库的数据被提取到一个 CSV 文件中,该文件是基本内衬数据)
我的问题:
- 有没有什么方法可以自动将响应正文导出为 CSV 格式? - 这样我就可以比较两个 CSV
- 从 csv 文件 中逐个单元格读取数据以遍历每个 JSON 数组 的任何方法验证的响应正文
- 如果以上几点无法用任何工具完成,请提出正确的方法。我尝试了很多 API 测试工具,但没有成功
提前致谢。
如果您想将 CSV 格式的响应打印到文件中,只需添加 JSR223 PostProcessor 作为上述 returns 请求的子项 JSON 并输入以下代码进入 "Script" 区域:
def json = new groovy.json.JsonSlurper().parse(prev.getResponseData())
def csvFile = new File('/path/to/csv/file')
json.each {entry ->
csvFile << entry.getValue() + ','
}
csvFile << System.getProperty('line.separator')
有关在 JMeter 测试中使用 Groovy 脚本的更多详细信息,请参阅 Apache Groovy - Why and How You Should Use It 文章。
另请注意,您可以直接使用以下方法执行断言:
- JSON Extractor 读取单个值(或来自 HTTP 请求的整个响应)
- JDBC PostProcessor 从数据库中读取单个值
- Response Assertion 比较值