2017-02-21 6 views
1

Я имею следующий запрос для создания сотрудникаКак проверить запрос на отдых и ответ такие же, используя мыло ui?

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

я получить ответ то же самое и дополнительно идентификатор сотрудника. я пишу утверждение в ответ на все свойства, как

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

Есть ли простой способ проверить следующие условия?

  1. запроса и ответ такой же (для обновления)
  2. запроса и ответ такого же, за исключением идентификатора (Для создания)

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 свойства. я могу сделать утверждение, как описано выше. Но я получаю более 20 свойств для другого объекта json. Поэтому мне нужен простой способ проверить, являются ли запросы и ответы одинаковыми. – 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 Assert работает

enter image description here

Смежные вопросы