当前位置: 首页 > 知识库问答 >
问题:

使用jsr223断言验证响应

易琛
2023-03-14
{
  "response": {
    "data": [
      {
        "tid": 3697,
        "chgId": 405,
        "amount": 8.5,
        "Currency": "USD",
       },
      {
        "tid": 3698,
        "chgId": 405,
        "amount": 3.33,
        "Currency": "USD",
       
      }
    ]
  }
}

现在,根据响应,我希望在JSR223断言中验证响应是否基于chgId字段是正确的。这意味着在两个“data”数组“chgid”中都应该出现405文本。

有人能建议吗?

共有1个答案

蔚学真
2023-03-14

你可以这样做:

def params = org.apache.http.client.utils.URLEncodedUtils.parse(prev.getURL().toURI(), 'UTF-8')

def expected = params.find { 'chgId' }.value as int

def actual1 = new groovy.json.JsonSlurper().parse(prev.getResponseData()).response.data[0].chgId
def actual2 = new groovy.json.JsonSlurper().parse(prev.getResponseData()).response.data[1].chgId

def success = (expected == actual1 && expected == actual2)

if (!success) {
    AssertionResult.setFailure(true)
    AssertionResult.setFailureMessage('chgId mismatch')
}

其中prev代表以前的SampleResult

更多信息:

    null
 类似资料:
  • 我目前正在使用rest和Json-Unit对请求的rest响应断言本地json文件。 我目前有一个前类方法与我的基本uri. 我不知道该如何断言。我正在努力处理json单元文档。我需要先输入一个文件吗?

  • 在 “assert”(断言)和 “verify”(验证)之间选择的关键点,取决于对测试失败如何管理以及管理的便利性。如果在检查浏览器显示的是否是预期页面时,测试已经失败,那么在此基础上再检查页面的第一个段落是否正确几乎没有意义了。如果打开的页面不对,你可能想立刻中止测试用例,检查原因并修复问题。另一种情况,你可能希望检查页面上的许多属性,在测试用例碰到第一个失败后并不终止执行,这将允许你检查所有页

  • 我可以通过HTTP-Redirect绑定登录和接收SAMLResponse,也可以使用privatekey解密和检索声明。 我的问题仍然是,我们需要验证saml响应(ADFS)吗?如果是如何做到这一点 我需要使用IP(身份提供商)公钥吗?它将在IP(元数据)中可用吗? 我在下面的请求参数中有SAML响应 SAMLACK=签名=hashvalue sigAlg=sha256 如何验证?

  • 我有一个API返回以下结果: 断言错误:true断言失败:false断言失败消息:javax.script.scriptexception:org.codehaus.groovy.control.multipleCompilationerrorsexception:startup failed:script20.groovy:10:预期“}”,发现“:”@第10行,第81.rev.getRespo

  • 我正在阅读使用Assertj验证结果的测试类。偶尔,我会发现一个没有断言的断言。 是否有可能在开发周期的某个地方识别这些类?我的第一个猜测是使用自定义声纳规则。虽然我不明白应该如何定义这个方法后面应该跟一个断言(返回void的方法?)。