Json 如何使用SOAPUI测试rest请求和响应是否相同?

Json 如何使用SOAPUI测试rest请求和响应是否相同?,json,groovy,soapui,Json,Groovy,Soapui,我有以下创建员工的请求 { "name": "abc", "dept": "mech", "dob": "20-Feb-1994" } 我得到的回复与一名员工的id相同。 我正在编写断言以响应所有属性,如 "name":"${CreateEmp#Request#$.name}" 有没有简单的方法来测试以下条件 请求和响应相同(用于更新) 请求和响应相同,但id不同(用于创建) 根据评论编辑: { "empid":"4187", "deptId":"4", "

我有以下创建员工的请求

{
  "name": "abc",
  "dept": "mech",
  "dob": "20-Feb-1994"
}
我得到的回复与一名员工的id相同。 我正在编写断言以响应所有属性,如

"name":"${CreateEmp#Request#$.name}"
有没有简单的方法来测试以下条件

  • 请求和响应相同(用于更新)
  • 请求和响应相同,但id不同(用于创建)
  • 根据评论编辑:

    {  
       "empid":"4187",
       "deptId":"4",
       "branchId":"6",
       "firstName":"Prabhu",
       "lastName":"S",
       "emailAddress":"prabhus@gmail.com",
       "contactNumber":"987654321",
       "isEnabled":"Y",
       "dob":"02/05/1994",
       "doj":"03/04/2016",
       "fatherName":"XXXX",
       "motherName":"YYYY",
       "activationCode":"ssp",
       "spouseName":"ZZZZ",
       "address":"MMMMMM",
       "pincode":"123456",
       "district":"16",
       "dateCreated":"2017-02-21T13:00:24.317Z",
       "dateModified":"2017-02-21T13:00:24.317Z",
       "status":"0"
    }
    

    下面是groovy脚本,它将响应与请求值进行比较

    Groovy脚本:将其用作请求步骤的
    脚本断言
    ,这样它就可以动态地处理任何请求和响应,而不是固定的json

    //Provide the keys to be ignored
    def ignoreKeys = ['empid', 'dateCreated', 'dateModified']
    
    def jsonRequest = context.rawRequest
    def jsonResponse = context.response
    
    def reqParsed = new groovy.json.JsonSlurper().parseText(jsonRequest)
    def resParsed = new groovy.json.JsonSlurper().parseText(jsonResponse)
    
    def sb = new StringBuffer()
    reqParsed.keySet().each { key ->   
       if (!ignoreKeys.contains(key)) {
          reqParsed."$key" == resParsed."$key" ?: sb.append("${key} value does not match; request[${reqParsed."$key"}], response[${resParsed."$key"}]\n")
    
       }
    }
    if(sb.toString()) {
       throw new Error("There are differences between the request values and response values. Details below:\n${sb.toString()}")
    }
    
    在这里,您可以使用提供的固定样本快速在线尝试

    输出:使用了不同的值来管理断言工作


    可能会显示原始样本响应。您添加了什么样的断言?上面的一个成功了吗?是的,上面的一个成功了。为此,我得到了3-4个属性。我可以做如上所述的断言。但我得到了其他json对象的20个以上属性。所以我需要有任何简单的方法来测试请求和响应是否相同。请你发布大的响应样本好吗?我发布了粗略的数据,我无法发布真实的数据。{“empid”:“4187”,“deptId”:“4”,“branchId”:“6”,“firstName”:“Prabhu”,“lastName”:“S”,“emailAddress”:”prabhus@gmail.com“,”联系人号码“:”987654321“,”isEnabled“:”Y“,”dob“:”1994年5月2日“,”doj“:”2016年4月3日“,”父亲姓名“:”XXXX“,”母亲姓名“:”YYYY“,”激活代码“:”ssp“,”配偶姓名“:”ZZZZ”,“配偶姓名”:“ZZZZ”,“地址”:“MMMMMM”,“pincode”:“123456”,“地区”:“16”,“创建日期”:“2017-02-21T13:00:24.317Z”,“修改日期”:“2017-02-21T13:00:24.317Z”,“状态”:“0”}