首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据数据库数据验证Jmeter响应

如何根据数据库数据验证Jmeter响应
EN

Stack Overflow用户
提问于 2019-10-30 17:57:01
回答 2查看 736关注 0票数 0

我正在寻找一种解决方案,如何针对数据库数据断言JSON响应,并打印断言结果消息中的差异

Jmeter响应示例

代码语言:javascript
复制
{"data": [
        {
        "code": 99,
        "name": "A"
    },
        {
        "code": 2,
        "name": "B"
    },
        {
        "code": 7,
        "name": "C"
    },
        {
        "code": 4,
        "name": "D"
    },
        {
        "code": 6,
        "name": "E"
    },
        {
        "code": 3,
        "name": "C"
    }
]}

通过JDBC获取的数据库数据作为JSON

代码语言:javascript
复制
[
        {
        "name": "A",
        "code": 1
    },
        {
        "name": "B",
        "code": 2
    },
        {
        "name": "F",
        "code": 7
    },
        {
        "name": "D",
        "code": 4
    },
        {
        "name": "E",
        "code": 6
    },
        {
        "name": "C",
        "code": 3
    }
]

断言消息示例

代码语言:javascript
复制
        Discrepancies 
     API                          DB
{"code": 99,"name": "a"} <->    {"name": "A","code": 1}  
EN

回答 2

Stack Overflow用户

发布于 2019-10-31 04:22:23

票数 0
EN

Stack Overflow用户

发布于 2019-11-04 11:28:06

假设以上JSON值相应地保存到fromJSONfromDatabase JMeter变量

  1. JSR223断言添加为要失败的采样器的子级
  2. 将以下代码放入"Script“区域: def fromJSON =新的groovy.json.JsonSlurper().parseText(vars.get('fromDatabase'))).toPrettyString()) def fromDatabase =新的groovy.json.JsonSlurper().parseText(新groovy.json.JsonBuilder)(数据:新的groovy.json.JsonBuilder def差异= fromJSON.collectEntries { k,v -> fromDatabasek?)[k,(v - fromDatabasek)]:} if (differences.data.size() != 0) {AssertionResult.setFailure(真)AssertionResult.setFailure:‘+ System.getProperty('line.separator') +新的differences.data.size}
  3. 就是这样,在不匹配的情况下,断言将生成Sampler,并报告差异:

您还可能对需要较少编码和Groovy知识(例如杰克逊JSONAssert )的替代方法感兴趣,请查看使用JMeter比较REST响应的最简单方法文章以获得更多详细信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58631229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档