2017-02-21 55 views
1

我有以下請求創建員工如何使用soap ui測試其餘請求和響應是否相同?

{ 
    "name": "abc", 
    "dept": "mech", 
    "dob": "20-Feb-1994" 
} 

我得到的反應相同,僱員的額外ID。 我寫斷言響應像

"name":"${CreateEmp#Request#$.name}" 

所有屬性有什麼簡單的方法來測試以下條件?

  1. 請求和響應是相同的(對於更新)
  2. 請求和響應是除了ID相同(在創建)從評論

編輯:

{ 
    "empid":"4187", 
    "deptId":"4", 
    "branchId":"6", 
    "firstName":"Prabhu", 
    "lastName":"S", 
    "emailAddress":"[email protected]", 
    "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" 
} 
+0

可能顯示原始樣本響應。 – Rao

+0

你加了什麼樣的斷言?以上是否有效? – Rao

+0

是的,上面的一個成功工作。爲此我得到3-4個屬性。我可以像上面那樣做斷言。但是我爲其他json對象獲得了20個以上的屬性。所以我需要的是有任何簡單的方法來測試請求和響應是否相同。 – Prabhu

回答

2

這裏是常規對請求值做出響應比較的腳本

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與您所提供的固定樣本嘗試。

輸出:使用了不同的值,以domonstrate斷言作品

​​