尝试从请求中做出一些断言,该断言将作为响应出现

时间:2019-06-10 18:57:13

标签: rest api karate

我正在传递请求,就像在我的功能文件中一样,我正在尝试从请求到响应做断言。

我尝试过必须包含查询,但是我不确定我是否做对了,请您帮忙。

**Background:**
*  configure headers = read('classpath:merchantServiceheaders.js')

Given url MservUrl 
And path '/spapis/rest/sp-ms-engine/sp/ms/v1/engine/scanandredact'

方案纲要:ACH低价值支付陷阱服务摘要

And request <Data> 
When method POST 
Then status 200 
And match response != null 
And  print response
And match $ contains {serviceName: 'Merchant Service Scan and Redact Service', responseMessage: 'Success' }
And match each $.clauses..responseMessage == 'Success'
And match each $..predicate != null
And match each $..predicate == '#present'
And match each $..predicate == '#regex [^0-9]+[0-9]*$'
And match <data> contains $..clauses.subject

Examples: 
    |Data                                               |
    |'{"clauses":[{"subject":"5432154321543210","predicate":"4432154321543210"},{"subject":"4325325456545646","predicate":"4325325456545646"}]}'|

* {   “ serviceName”:“商家服务扫描和修订服务”,   “ requestTime”:1560192787991,   “ responseTime”:1560192788657,   “ timeTaken”:666,   “ responseCode”:0,   “ responseMessage”:“成功”,   “ requestingAppName”:“ ISB”,   “ requestingAppSealId”:“ 89784”,   “条款”:[     {       “ subject”:“ 5432154321543210”,       “ predicate”:“ ************ 3210”,       “ responseCode”:0,       “ responseMessage”:“成功”     },     {       “ subject”:“ 4325325456545646”,       “谓词”:“ ************ 5646”,       “ responseCode”:0,       “ responseMessage”:“成功”     }   ] } *

我想做的是将我在请求中所拥有的内容断言为我将要回覆的内容。

由于我在请求中传递了主题,因此应该在响应中出现同一主题

1 个答案:

答案 0 :(得分:1)

在0.9.3版中可能:https://github.com/intuit/karate#scenario-outline-enhancements

首先将Examples:列标题更改为data!

And request data
When method post
Then status 200 
And match response contains data 

在0.9.2及更早版本中,示例:列标题为data

* def data = <data>
And request data
When method post
Then status 200 
And match response contains data