在SoapUI中将属性作为JSON传递

wbe*_*est 3 rest json soapui

我有一系列创建步骤作为我正在处理的程序的用例的示例.例如,用户必须首先创建CASE并发送响应_id(数据库密钥),作为创建IDENTITY时的case_id.

POST CASE请求:

{ "display_name" : "Sample Case"}
Run Code Online (Sandbox Code Playgroud)

响应:

[{
   "synthetic": false,
   "last_updated": "2014-08-25 16:50:07.956611",
   "encrypted": false,
   "date_created": "2014-08-25 16:50:07.956602",
   "_id": "53fb693fc41be928380d5fe0",
   "display_name": "Sample Case"
}]
Run Code Online (Sandbox Code Playgroud)

XML中的响应:

<Response>
   <e>
      <_id>53fb693fc41be928380d5fe0</_id>
      <date_created>2014-08-25 16:50:07.956602</date_created>
      <display_name>Sample Case</display_name>
      <encrypted>false</encrypted>
      <last_updated>2014-08-25 16:50:07.956611</last_updated>
      <synthetic>false</synthetic>
   </e>
</Response>
Run Code Online (Sandbox Code Playgroud)

POST IDENTITY请求:

{
    "display_name" : "John Doe",
    "case_id" : "53fb693fc41be928380d5fe0",
    "type" : "person",
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,虽然我可以从案例响应中捕获_id值,并将其填充到一组属性中,但我无法弄清楚如何将该属性对象转换为JSON请求(程序I我正在处理REST请求的需求.

有没有办法使用Test Suite动态创建REST请求的JSON数据?

SiK*_*ing 5

如果您只想从之前的Response中插入内容,可以使用SoapUI属性扩展:

${previous_step_name#ResponseAsXml#//*:_id}
Run Code Online (Sandbox Code Playgroud)

所以你的例子看起来像:

{
    "display_name" : "John Doe",
    "case_id" : "${previous_step_name#ResponseAsXml#//*:_id}",
    "type" : "person",
}
Run Code Online (Sandbox Code Playgroud)

如果您需要更"花哨"来"动态创建JSON数据",您需要解释它想要的内容.以下是可以帮助您入门的内容:http://siking.wordpress.com/2013/07/05/dynamically-create-elements-in-a-soapui-request-json-version/