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

标签 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

这当然有效,但我希望能够以两种方式调用它,以验证它们都在工作。

我错过了什么吗?

最佳答案

我无论如何都不是soapui专家,但刚刚经历了一个非常相似的场景,所以这可能会帮助你。

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

http://{host}/stuff

我创建了一个具有以下值的子资源:
    Resource Name: Get stuff by ID
    Resource Path/Endpoint: {stuffId}

and before clicking ok, click Extract Params - this will populate the Parameters table with an entry like:

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

then click ok. You now have a resource that allows you to dynamically supply an id:

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

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

第 2 部分:创建测试用例
现在在测试用例中,您需要检索 A,传输属性,然后使用该属性向上述资源发送请求:
  • 在测试用例中,创建请求以检索包含 A
  • 的响应。
  • 右键单击测试用例并添加一个属性步骤。添加一个属性来存储 A 的值。
  • 从 Outline View 中的响应中,右键单击 A 的值并选择“转移到 > 属性”,选择您刚刚创建的属性并点击确定
  • 使用在第一部分中创建的新参数化资源创建一个新请求。在 id 的位置,以这种格式放置对保存 A 值的属性的引用:
    ${propertyName}
    

  • 我可能做错了什么,但我的测试最初在“缺少源属性”的属性转移上失败。在 Source 是 PropertyTransfer 步骤中,我需要将属性设置为 ResponseAsXml

    希望这可以帮助!

    关于rest - 如何将参数作为 SOAP UI REST 请求中路径的一部分添加到 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12930530/

    相关文章:

    mysql - 用 MySQL 替换 hsqldb

    soapui - 更新到 SoapUI 5.2.0 后的 ClassNotFoundException

    java - 如何在自定义 Rest Controller 中实现补丁 HTTP 方法?

    java - Grails:groovy.sql.Sql 和 Model.withTransaction 会发生什么?

    jenkins - 在 Jenkins 管道中设置节点标签

    java - 如何在 Grails 中的 Quartz 作业开始时运行一次函数,并在调用之间保留变量值?

    wcf - SoapUI WCF 使用 SSL 证书

    rest - 即使 SOAP UI 中的测试用例在继续之前清理失败,如何调用某些步骤?

    testing - 可以通过 oauth 处理登录的 REST 客户端

    rest - 在 Yii2 RESTful API 中覆盖 actionCreate 时如何捕获数据库异常?