【问题标题】:Property Transfer from a testcase response to a request in different testcase从测试用例响应到不同测试用例中的请求的属性转移
【发布时间】:2018-09-17 14:04:04
【问题描述】:

SoapUI 中测试rest 服务,我需要从测试用例响应到不同测试用例中的请求进行属性转移。

第一个测试用例中的JsonResponse如下:

     {[{
         "items":[{
         "id": "1234",
         "state": "XYZ",
         "type" : "ABCD"
     },
     {
         "id": "12345",
         "state": "XYZV",
         "type" : "ABCDF"
     }
  ]}

响应中的 id(只有一个)必须通过属性转移定向到第二个测试用例的 Json 请求

    {
         workItemsId: ["1234"],
        field: "ABCD"
    }

我尝试过使用 items[0].id,但它只传输值。 我需要它作为响应中的数组。 任何帮助将不胜感激。我对 SOAP-UI 很陌生。

【问题讨论】:

    标签: json rest testing automated-tests soapui


    【解决方案1】:

    IMO 最简单的方法是使用属性扩展。对于您的情况,您可以使用以下符号方法${Test step name#Response#JSONPath}

    假设您有一个名为 REST Test Request 的第一个 testStep,并具有以下响应:

    {
        "items":[
            {"id": "1234","state": "XYZ","type" : "ABCD"},
            {"id": "12345","state": "XYZV","type" : "ABCDF"}
        ]
    }
    

    并且您想在第二个 testStep 请求中使用来自 items 数组的第一个 id 并将其设置在数组中,您可以使用以下符号:

    {
        workItemsId: [${REST Test Request#Response#$items[0].id}],
        field: "ABCD"
    }
    

    更新

    如果您在评论时想在属性转移中使用JSONPath 表达式,请添加Property transfer testStep,选择作为请求源,作为属性response,作为路径语言JSONPath,然后输入表达式$items[0].id 最后选择要放置结果的属性。最后,您的财产转让将如下所示:

    希望对你有帮助,

    【讨论】:

    • 你能建议我通过财产转让做同样的事情吗..请
    • @BinoyCherian 对不起,我不明白您的评论,您的意思是在property transfer 中使用 jsonpath 获取您的响应值吗?
    • 答案是正确的。我只是建议改用${Test step name#ResponseAsXml#XPath}。原因是:如果你想在 CI 环境中运行你的测试,SoapUI Maven 插件没有在 5.2 版本中发布,这是添加 JsonPath 支持的地方。出于这个原因,我昨天花了所有时间将我的 JsonPath 重写为 XPath。 :(
    • @abcif,是的,我想在属性转移中使用 jsonpath 获取响应的值。
    【解决方案2】:

    您是为此使用两个测试用例还是仅使用两个测试步骤? 无论如何,您可以将其设置为测试用例上的属性,然后在下一个请求中使用该属性并进行属性扩展,而不是将属性直接转移到下一个请求。 所以,

    1. 在测试用例上创建一个属性“id”。
    2. 在属性转移步骤中,使用 items[0].id 设置此属性的值
    3. 在下一个请求中使用属性扩展来填充值,所以 json 看起来像:

      {
        workItemsId:["${#TestCase#id}"],
        field: "ABCD"
      }
      

    这里有更多关于属性扩展的细节:https://www.soapui.org/scripting---properties/property-expansion.html

    【讨论】:

      猜你喜欢
      • 2015-09-10
      • 2014-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-20
      • 2016-06-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多