2017-02-21 8 views
1

私は私が応答同じと従業員のさらにIDを取得した従業員を作成残りのリクエストと応答をテストするにはsoap uiを使用するのと同じですか?

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

ため、次の要求を持っています。私は

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

のようなすべてのプロパティのための応答にアサーションを書いています は、以下の条件をテストするための任意の簡単な方法はありますか?

  1. 要求と応答が(更新のため)同じである
  2. 要求及び応答は、ID以外は同じである(用に作成)コメントから

EDIT:ここ

{ 
    "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:これを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するために、異なる値を使用しましたが、作品

​​

関連する問題