采用 Robot Framework 使用 ETSI NFV-TST API 测试代码

本提案旨在通过使用 Robot Framework 和 ETSI NFV-TST API 测试代码,高效地实现符合 ETSI NFV 标准的自动化测试。这里的范围是使用 Robot Framework 的实现以及 Tacker 文档的改进,以用于 ETSI NFV 合规性测试。

问题描述

目前 Tacker 功能测试主要集中在检查各种 VNF 模式,例如简单的 VNF、多 VDU、卷附加和亲和性设置。

Tacker 社区正在推进 ETSI NFV 标准的合规性,并且覆盖符合标准的 API 测试变得重要。

提议的变更

我们的计划是使用 Robot Framework [1] 来实现自动化的 API 测试。我们采用 ETSI NFV-TST010 [2] 发布 API 测试代码。

最终的 Tacker 测试改进计划如下。

  • 测试实现

    • 单元测试

      • 继续当前改进(与此规范无关)

    • 功能测试

      • 继续当前改进(与此规范无关)

      • 通过使用 Robot Framework 开发 Tacker 社区机器人测试代码来扩展场景测试(未来工作)

    • 合规性测试

      • 使用 Robot Framework 进行 ETSI NFV-TST 测试(NFV-TST010 是第一步,其他是未来工作)

  • 编写文档向 Tacker 贡献者和用户解释上述内容

Robot Framework 和 ETSI NFV-TST010 测试代码的测试概述

+------------------------------------------------------------+
|                                                            |
|          +----------------------------------------+        |
|          |Tacker repository                       |        |
|          | +---------------+  +-----------------+ |        |
|          | |Community robot|  |Zuul configurtion| |        |
|          | |test code      |  |.zuul.yaml       | |        |
|          | |(future work)  |  +-----------------+ |        |
|          | +---------------+                      |        |
|          |                        +-------------+ |        |
|          | +--------------+       |playbook     | |        |
|          | |testitem.robot|       |runrobot.yaml| |        |
|          | +--------------+       +-------------+ |        |
|          +----------------------------------------+        |
|                                               |            |
|        +------------+  download (pip)         |            |
|        |            |  Robot framework        |            |
|        | python     +---------------------+   |            |
|        | repository |                     |   |            |
|        |            |                     |   |            |
|        +------------+                     |   |            |
|                                           v   v            |
|   +-----------------+  download          ++---+-+          |
|   |                 |  robot test code   |      |          |
|   | ETSI repository +------------------->+ Zuul |          |
|   | api-tests       |                    |      |          |
|   |                 |      +-------------+      +---+      |
|   +-----------------+      |             +------+   |      |
|                            |                        |      |
|                            | execute        execute |      |
|                            v                        v      |
|                      +-----+-----+        +---------+--+   |
|                      |           |        |            |   |
|                      | Robot     |  test  | Tacker     |   |
|                      | framework +------->+ (devstack) |   |
|                      |           |        |            |   |
|                      +-----------+        +------------+   |
|                                                            |
+------------------------------------------------------------+

testitem.robot 是从 ETSI NFV-TST 发布的代码中选择的测试用例列表。它取决于 Tacker 的 API 实现。

我们还提供关于测试的文档,其中描述了 Robot Framework 在单元测试、功能测试和合规性测试(包括 API 测试)中的标准和责任。使用 Robot Framework 是实施合规性测试的第一步。

本文档的结构如下:1. 摘要 2. 测试框架 3. 开发流程 4. 运行测试 5. 覆盖范围

数据模型影响

REST API 影响

安全影响

通知影响

其他最终用户影响

性能影响

IPv6 影响

其他部署者影响

开发人员影响

编写新的 API 可能需要获取/编写 ROBOT 测试,以及单元测试和功能测试。

社区影响

将提供自动 API 测试的运行功能。如有必要,我们将与 OpenStack QA 团队讨论。

备选方案

实现

负责人

主要负责人

  1. 高桥 俊明

其他贡献者

(待定)

工作项

  1. 从 TST 测试用例中创建一个测试列表(选择 Tacker 实现的 API)

  2. 创建 Robot 执行 playbook

  • 安装 Robot Framework

  • 从 ETSI NFV-TST 仓库下载测试代码

  • 使用上述测试列表执行测试

  1. 将上述 playbook 执行作业添加到 Zuul 设置

依赖项

测试

符合 NFV 标准的 API 测试将在 Robot Framework 中执行。

Tempest 测试

功能测试

注意

未来,一些功能测试将由 Robot Framework 执行。

API 测试

符合 ETSI NFV-SOL002、003 和 005 标准的 API 将由 Robot Framework 和 ETSI NFV-TST010 发布的代码进行测试。

文档影响

用户文档

开发人员文档

我们将制定关于测试策略的文档。

参考资料