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 经常部署到使用虚拟化软件(如 VirtualBox、VMware Fusion 或 Virtual 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 测试开发者来说,仓库内的两个包特别感兴趣
- Tempest Neutron ReST 客户端。Tempest 为不同的 OpenStack 服务实现了自己的 ReST 客户端。如文档所述,测试应始终使用 Tempest 实现的 OpenStack API,因为我们希望确保错误不会被官方客户端隐藏。Neutron / Tempest API 开发者必须扩展此包中的 ReST 客户端,以增加 Neutron API 的覆盖范围,如其官方 文档 中定义的那样。这个 ReST 客户端反过来是 Tempest 基础客户端 的子类
- Tempest Neutron API 测试。请查看此包中的模块,以便熟悉 Neutron API 的测试方式。
决定开发什么
我们正在 QA Neutron 页面 中跟踪 Icehouse 周期需要开发的测试。转到“API 测试差距分析”部分,然后选择你要实现的函数。不要忘记,如上所述,这可能需要扩展 Neutron 的 ReST 客户端,而不仅仅是编写测试本身。另外,请在选择的功能旁边写上你的 IRC 用户名,以免重复工作。
获取帮助
如果你遇到问题需要帮助,请随时在以下 IRC 频道(chat.freenode.net)中寻求帮助
- #openstack-neutron
- #openstack-qa