跳转到: 导航, 搜索

Neutron/TempestAPITests

Neutron 的 Tempest API 测试

OpenStack 服务的根本接口是一组 ReST API。其他接口,例如 CLI 命令或 Horizon 门户,都是建立在这些 ReST API 之上的。因此,拥有工具来验证 OpenStack 部署是否符合 ReST API 规范至关重要。

Tempest 是一组功能集成测试,旨在针对实际的 OpenStack 部署运行。它是一个功能测试框架,以 testools Python 库为基础。测试用例针对 OpenStack 服务端点(如 Neutron 或 Nova)执行一系列 API 调用,并验证从所述端点接收到的响应。

此页面的目的是引导新的 OpenStack 开发者完成编写 Neutron Tempest API 测试的初始步骤。


如果你是绝对的初学者:加入社区

在为 OpenStack 或 Tempest 编写任何代码之前,你需要采取一些管理步骤来加入社区。这是一个很好的 工作流程概述。Colin McNamara 整理了一份出色的 演示文稿,介绍了这个主题。你可以在这里观看 Colin 演示该演示文稿 这里


设置开发系统

Devstack 是一个文档化的 shell 脚本,用于在你的笔记本电脑上安装和运行 OpenStack 云。大多数开发者不会在笔记本电脑的“裸机”上运行 DevStack。相反,DevStack 经常部署到使用虚拟化软件(如 VirtualBoxVMware FusionVirtual Machine Manager)创建的虚拟机。DevStack 非常适合想要从管理员或用户角度查看 Dashboard 样子的潜在用户,以及想要针对完整的本地环境进行测试的 OpenStack 贡献者。

这些是关于如何为 Neutron 设置 DevStack 的 具体说明。Kyle Mestery,Neutron 核心开发者之一,整理了 这个演示文稿,介绍了如何使用 DevStack 进行 Neutron 开发。


学习 Neutron API

这是官方的 Neutron ReST API 文档。它由一个 核心 API 组成,该 API 提供 3 个基本的 Neutron L2 抽象:网络、子网和端口。还有一系列 API 扩展,它们提供诸如路由器、浮动 IP、负载均衡器即服务、配额等抽象,这些抽象跨越 OSI 模型的 L3 到 L7。

Neutron 和 Tempest 开发者组的目标是创建一个全面的测试集,以执行 API 的所有文档化的正向路径和选项,并向其提供无效数据,以确保它们以预期和文档化的方式失败。在 OpenStack 项目的过程中,Tempest 通过这样做发现了许多根本性的错误。


了解 Tempest 测试框架

可以在 这里 找到官方 Tempest 文档。有抱负的 Neutron / Tempest API 开发者必须特别关注 Tempest API 测试领域指南

Tempest 测试的代码存储在 OpenStack Git 仓库 中。对于 Neutron / Tempest API 测试开发者来说,仓库内的两个包特别感兴趣

  1. Tempest Neutron ReST 客户端。Tempest 为不同的 OpenStack 服务实现了自己的 ReST 客户端。如文档所述,测试应始终使用 Tempest 实现的 OpenStack API,因为我们希望确保错误不会被官方客户端隐藏。Neutron / Tempest API 开发者必须扩展此包中的 ReST 客户端,以增加 Neutron API 的覆盖范围,如其官方 文档 中定义的那样。这个 ReST 客户端反过来是 Tempest 基础客户端 的子类
  2. Tempest Neutron API 测试。请查看此包中的模块,以便熟悉 Neutron API 的测试方式。

决定开发什么

我们正在 QA Neutron 页面 中跟踪 Icehouse 周期需要开发的测试。转到“API 测试差距分析”部分,然后选择你要实现的函数。不要忘记,如上所述,这可能需要扩展 Neutron 的 ReST 客户端,而不仅仅是编写测试本身。另外,请在选择的功能旁边写上你的 IRC 用户名,以免重复工作。


获取帮助

如果你遇到问题需要帮助,请随时在以下 IRC 频道(chat.freenode.net)中寻求帮助

  • #openstack-neutron
  • #openstack-qa