【问题标题】:JSON Response validation based on a CSV data基于 CSV 数据的 JSON 响应验证
【发布时间】:2018-09-18 04:29:31
【问题描述】:

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

{ “身份证”:1, "first_name": "乔治", "last_name": "布鲁斯", “头像”:“测试1” },

{ “身份证”:2, "first_name": "珍妮特", "last_name": "织工", “头像”:“测试2” },

{ “身份证”:3, "first_name": "艾玛", "last_name": "黄", “头像”:“Test3” }

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

我的问题:

  • 有没有什么方法可以自动将响应正文导出为 CSV 格式? - 这样我就可以比较两个 CSV
  • csv 文件 中逐个单元格读取数据以通过响应正文中的每个 JSON 数组 进行验证的任何方式
  • 如果以上几点不能用任何工具完成,请提出正确的方法来完成此操作。我尝试了许多 API 测试工具,但都没有成功

提前致谢。

【问题讨论】:

    标签: rest jmeter integration-testing soapui postman


    【解决方案1】:

    如果您想将 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')
    

    有关在 JMeter 测试中使用 Groovy 脚本的更多详细信息,请参阅 Apache Groovy - Why and How You Should Use It 文章。

    另外请注意,您可以使用以下命令直接执行断言:

    【讨论】:

    • 非常感谢 Dmitri 的回复。就我而言,由于 AD 授权,我无法使用 Jmeter。所以我使用 Postman 并找到了一种读取 CSV 数据并与每个 JSON 响应数组进行比较的方法。
    • 在正确配置 HTTP Authorization Manager 的情况下,JMeter 绕过 AD 授权应该不是问题,请查看 Windows Authentication with Apache JMeter 文章以获取有关 NTLM 和 Kerberos 方案配置详细信息的更多信息
    • 感谢您的更新。我在 JMeter JSR223 PostProcessor 断言中尝试了你的 groovy 脚本。但是,我得到一个 CSV 文件,其中包含响应标头而不是响应正文。有什么办法可以输出 JSON 响应体。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-04
    • 2020-01-13
    • 2014-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多