所以我使用空手道中的功能创建了动态POST请求。我手动测试了新创建的请求,它确实返回了200.但是,当通过Karate运行请求时,我得到415不支持的媒体类型。
POST REQUEST:
{
"content": [
{
"assetId": "273108817",
"country" : "US",
"sourceSystemCode" : "GE_Clarify",
"serviceRequestCode" : "Karate-Insert: 157264280",
"serviceRequestTypeCode" : "servicerequestcorrective",
"serviceRequestStatusCode" : "Started",
"requester" : "Karate,DSL",
"problem" : "Submitted Using Karate",
"submissionTimestamp" : null,
"sourceUpdateDate": "2017-09-13T15:53:51.597Z",
"completionDate" : null,
"dueDate" : null,
"availabilityDate" : null,
"remotely" : "0",
"assetAvailability" : "Up",
"facilityCode" : "US_294629"
}
]
}
空手道语法
场景:提交新的服务请求POST:
def ServiceRequestPostTemplate = read(' classpath:testsuite / testdata / ServiceRequestServiceTemplate.json') *替换ServiceRequestPostTemplate |令牌|价值| | assetId | assetTblAssetId | |国家|国家| | sourceSystemCode | sourceSystemCode | | serviceRequestCode | '空手道插入:' + NewServiceRequestCode |
给定路径' serviceRequests /' 并请求ServiceRequestPostTemplate
以下附件中的错误消息。注意,我通过Swagger UI手动检查了请求,一切正常。我也把它作为空手道中的硬编码变量传递给它并且它运行良好。但是,关于使用'表格'功能似乎改变了媒体类型。
答案 0 :(得分:2)
您还需要使用标题关键字添加内容类型,如下所示
给出路径'some / path'
请求{some:'data'}
标头Accept ='application / json'
方法发布时
然后状态200
希望这有帮助。
答案 1 :(得分:1)