如何使用 soap ui 测试休息请求和响应是否相同?
How to test rest request and response are same using soap ui?
我有以下创建员工的请求
{
"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 脚本: 将此用作请求步骤的 Script Assertion
,以便它可以动态处理任何请求和响应,而不是固定的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()}")
}
在这里您可以使用您提供的固定样本快速在线Demo试用
输出:使用不同的值来证明断言有效
我有以下创建员工的请求
{
"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 脚本: 将此用作请求步骤的 Script Assertion
,以便它可以动态处理任何请求和响应,而不是固定的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()}")
}
在这里您可以使用您提供的固定样本快速在线Demo试用
输出:使用不同的值来证明断言有效