SOAtest 可以从 WADL 或 RAML 定义或 URL 测试 RESTful 服务。

章节目录:

在 WADL 可用时测试 RESTful 服务

Parasoft SOAtest 可以通过 REST 客户端工具来测试 RESTful 服务。在下一个示例中,您将使用该工具来测试 ParaBank 贷款请求 API。

当您能够访问描述服务功能的 WADL(Web 应用程序描述语言)时,SOAtest 可以以类似于解析 WSDL 的方式创建一套功能测试。在下一个示例中,您将使用 ParaBank 的 WADL 创建测试。

若要使用 WADL 测试 RESTful 服务:

  1. 请确保本地托管的 ParaBank 应用程序(在设置 ParaBank中说明)正在运行,以便您可以访问 WADL。
  2. 右键点击任意一个测试套件: 在之前的教程中创建的测试套件测试用例资源浏览器节点,并选择新建 > 测试套件
  3. 选择 REST> WADL,点击下一步
  4. WADL URL 字段中,输入 http://localhost:8080/parabank/services/bank?_wadl&_type=xml启用创建测试用于在 WADL 上验证和执行策略,然后点击完成
  5. 注意,增加了三个测试来检查 WADL:
    • 测试 1: Schema 有效性:根据 W3C 的 WADL 模式在 WADL 上运行 XML 验证。
    • 测试 2: 语义有效性:检查 WADL 的正确性,方法是像实际的服务消费者那样解析和使用它,但是要严格遵守标准。
    • 测试 3: WADL 回归:为 WADL 创建回归控制,以便可以监控 WSDL 文档中的更改。
  6. 注意,已经创建了一个新的测试套件,其中包含与 WADL 提供的服务相对应的子测试套件和 REST 客户端工具。
  7. 双击在测试套件: accounts 下创建的新的 REST 客户端工具。所有 Path 参数已自动传播;然而,要从 ParaBank 检索一个有效的结果,我们必须提供一个有效的帐户 ID。
  8. 进入 Path 表,然后在 accountId 下输入有效的帐户 ID 12345

    注意,12345 现在被附加到 URL 中。
  9. 保存并运行 REST 客户端。
  10. 双击附加到 REST 客户端的通讯报文查看器并打开响应选项卡。您将看到,ParaBank 服务器返回帐户 #12345 的帐户详细信息。

从 OpenAPI/Swagger 或 RAML 定义中生成测试

请参阅 从 OpenAPI/Swagger 定义中创建测试从 RAML 定义中创建测试

使用 URL 测试 RESTful 服务

这个示例还演示了如何在无法访问描述完整应用程序功能的 WADL 时测试 RESTful 服务。

若要使用 URL 测试 RESTful 服务:

  1. 点击一个测试套件: 测试套件测试用例浏览器节点,然后点击工具栏中的添加测试套件
  2. 在添加测试向导中,选择,点击完成
  3. 双击新建的测试套件,在名称字段中输入 REST 示例,保存并关闭测试套件编辑器。
  4. 点击测试套件: REST 示例测试用例浏览器节点,然后点击工具栏中的添加测试或输出
  5. 在左侧选择标准测试之后,在右侧选择 REST 客户端,然后点击完成。将添加一个新的 REST 客户端工具,并打开其编辑器。
  6. 将工具重命名为负载请求 (JSON 响应)
  7. 注意,服务定义默认设置为。大多数 RESTful 服务都是纯粹的基于 GET 的服务,它们由一个 URL 和一个查询组成;它们通常使用 XML 或 JSON 响应有效负载进行响应。
  8. URL 字段中输入 http://localhost:8080/parabank/services/bank/requestLoan?customerId=1&fromAccountId=12345&amount=100&downPayment=1,然后从方法下拉框选择 POST 向 RESTful 服务提供请求。
  9. 注意,SOAtest 已经用路径模板和查询参数自动填充了表。如果希望添加其他参数,可以在这里这样做。


  10. HTTP 选项选项卡中,选择 HTTP 标题,点击添加,然后添加一个带有 Accept 名称和 application/json 值的新头部。如果省略了该头部,服务响应将是 XML 格式的。一旦添加,服务响应将是 JSON 格式。
  11. 保存 REST 客户端编辑器。
  12. 运行测试并在通讯报文查看器中查看通讯报文。注意,如果想要 JSON 消息的图形表示,可以从字面量视图切换到树视图。
    字面量视图:

    树视图:
  • No labels