首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在JMeter中比较DB与JSON变量中特定位置的值

如何在JMeter中比较DB与JSON变量中特定位置的值
EN

Stack Overflow用户
提问于 2021-11-09 06:57:47
回答 1查看 20关注 0票数 0

在数据库中,他们的is字段作为诊断参考,它的值类似于"123456“

在JSON中,值应显示为:

诊断参考1:1(位置1处的值)

诊断参考2:2(位置2处的值)

诊断参考3:3(位置3处的值)

诊断参考4:4(位置4处的值)

诊断参考5:5(位置5处的值)

诊断参考6:6(位置6处的值)

如何从DB获取每个位置的值,并使用JMeter将其与JSON变量进行比较?

EN

回答 1

Stack Overflow用户

发布于 2021-11-09 07:30:43

您可以使用如下配置的JDBC Request采样器将数据库中的值保存到JMeter Variable中:

那么我的假设是,您需要执行一些HTTP Request来从某个API端点获取JSON。

在此阶段,您可以向parse the JSON response添加一个JSR223 Assertion,并将其与JDBC请求采样器中的变量进行比较。

如果您的JSON响应如下所示:

代码语言:javascript
复制
[
  {
    "Diagnosis Reference 1": 1
  },
  {
    "Diagnosis Reference 2": 2
  },
  {
    "Diagnosis Reference 3": 3
  },
  {
    "Diagnosis Reference 4": 4
  },
  {
    "Diagnosis Reference 5": 5
  },
  {
    "Diagnosis Reference 6": 6
  }
]

您可以使用如下代码:

代码语言:javascript
复制
def response = new groovy.json.JsonSlurper().parse(prev.getResponseData())

vars.get('diagnosisReference_1').toCharArray().eachWithIndex { number, index ->
    if (response[index].get('Diagnosis Reference ' + number) != Character.getNumericValue(number)) {
        AssertionResult.setFailure(true)
        AssertionResult.setFailureMessage('Numbers mismatch, expected: ' + number + ', got: ' + response[index].get('Diagnosis Reference ' + number))
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69893968

复制
相关文章

相似问题

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