基于 CSV 数据的 JSON 响应验证



我有一个REST服务,它将给出如下JSON响应

{ "id": 1, "first_name": "乔治", "last_name": "布鲁斯", "头像":"测试1" },

{ "id": 2, "first_name": "珍妮特", "last_name": "织工", "头像":"测试2" },

{ "id": 3, "first_name": "艾玛", "last_name": "黄", "头像":"测试3" }

我想将这些响应与 SQL/Oracle 数据库进行比较,以检查数据是否正确(数据库中的数据被提取到作为基本行数据的 CSV 文件中)

我的问题:

  • 有没有办法将响应正文作为自动方式导出为 CSV 格式? - 这样我就可以比较两个 CSV
  • csv 文件中逐个单元格读取数据单元格以遍历响应正文中的每个JSON 数组以进行验证的任意方法
  • 如果上述几点无法使用任何工具完成,请建议一种正确的方法。我尝试了许多API测试工具,但没有运气

提前谢谢。

如果要将 CSV 形式的响应打印到文件中,只需将 JSR223 PostProcessor 添加为返回上述 JSON 的请求的子项,并将以下代码放入"脚本"区域:

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')

请参阅 Apache Groovy - 为什么以及如何使用它的文章,了解有关在 JMeter 测试中使用 Groovy 脚本的更多详细信息。

另请注意,您可以使用以下方法直接执行断言:

  • JSON 提取器,用于读取单个值(或来自 HTTP 请求的整个响应)
  • JDBC 后处理器,用于从数据库中读取单个值
  • 用于比较值的响应断言

最新更新