如何在SOAP UI REST请求中将参数添加到URL作为路径的一部分?

时间:2012-10-17 08:52:15

标签: rest groovy soapui

我正在为soapUI 4.5中的REST API创建一个测试用例,我将使用步骤X中的内容在步骤Y中进行新的调用。

理想情况下,我会使用一些参数创建REST请求,例如A和B,并说这些参数应该在URL中使用: http://myapi.com/v1/stuff/A/B

然后我会进行属性转移步骤,只需将从步骤X中提取的值设置为A和B.

看起来soapUI只让我创建查询字符串参数,如下所示: http://myapi.com/v1/stuff?ParamA=A&ParamB=B

这当然有效,但我希望能够双向调用它,以验证它们是否正常工作。

我错过了什么吗?

1 个答案:

答案 0 :(得分:11)

我不是任何方式的soapui专家,但刚刚完成了一个非常类似的场景,所以这可能会帮助你。

第1部分:创建一个参数化的资源
在我的服务中,我有一个名为stuff的资源:

http://{host}/stuff

我使用以下值创建子资源:

    Resource Name: Get stuff by ID
    Resource Path/Endpoint: {stuffId}

在单击“确定”之前,单击“提取参数” - 这将使用以下条目填充“参数”表:

    Name     | Default value | Style      | Location
    stuffId  | stuffId       | TEMPLATE   | RESOURCE

然后点击确定。您现在拥有一个允许您动态提供ID的资源:

http://{host}/stuff/{id}

你需要重复这个来创建上面的B参数(或者你可以创建A和B作为单个资源的两个参数,如果你从不调用/ stuff / A而不提供B)。

第2部分:创建测试用例
现在在测试用例中,您需要检索A,传输属性,然后使用属性向上述资源发送请求:

  1. 在测试用例中,创建检索包含A
  2. 的响应的请求
  3. 右键单击测试用例并添加“属性”步骤。添加属性以存储A的值。
  4. 从大纲视图中的响应中,右键单击A的值并选择“转移到>属性”,选择刚创建的属性并单击确定
  5. 使用在第一部分中创建的新的paramatized资源创建新请求。在id的位置,将以这种格式保存A值的属性引用:

    ${propertyName}
    
  6. 我可能做错了什么,但我的测试最初因“缺少源属性”而导致属性转移失败。在PropertyTransfer步骤的Source中,我需要将属性设置为ResponseAsXml

    希望这有帮助!