测试人员简介¶
本文旨在为运行现有测试套件提供简介。
我们假设您可以使用操作测试实验室;如果不能,请向您的本地管理员寻求访问权限!
如果您在这里测试上游 Ceph,请从此处开始。
术语¶
从抽象上讲,每组测试都由一个套件定义。我们所有的套件都位于 ceph git 仓库的 qa/suites/ 目录中。 suites 中的每个子目录都是一个套件;它们还可能包含“子套件”,这有助于调度,例如特定功能的测试。
具体来说,运行是通过将套件的内容组合成多个作业而创建的。作业是通过将多个片段(也称为方面)组合在一起而创建的。每个片段都采用 YAML 格式。
每个作业定义都包含要执行的任务列表以及角色。角色告诉 teuthology 每个作业要使用多少个节点以及每个节点将执行什么功能。
要深入了解套件设计,请参阅 README。
smoke 套件就是一个例子。
调度¶
大多数测试是通过调度运行进行的。我们使用 teuthology-suite 命令来完成此操作。
要预览 teuthology-suite 可能执行的操作,请尝试
teuthology-suite -v -m mira --ceph-repo http://github.com/ceph/ceph.git -c main --suite-repo http://github.com/ceph/ceph.git -s smoke --dry-run
-m mira 指定 mira 作为机器类型。机器类型取决于所使用的特定实验室。–ceph-repo http://github.com/ceph/ceph.git 指定从哪个 git 仓库拉取 -c main。同样,–suite-repo 指定在哪里查找 QA 分支。–ceph-repo 和 –suite-repo 的默认值是 http://github.com/ceph/ceph-ci.git,这通常是您想要的。对于 main,您必须始终使用 http://github.com/ceph/ceph.git,因为它不存在于 ceph-ci 仓库中。
假设构建可用,它应该假装调度几个作业。如果它抱怨缺少包,请尝试将 main 替换为 jewel 或其他 Ceph 稳定分支之一。
要查看更多细节,请将 -v 替换为 -vv。它将完整打印出每个作业定义。要限制调度的作业数量,您可能需要使用 –limit、–filter 或 –filter-out 标志。
要实际调度,请删除 –dry-run 并选择使用 –email 标志以便在测试运行完成时接收电子邮件。
teuthology-suite 还会打印一个指向 pulpito 中运行的链接,该链接将显示每个作业的当前状态。Sepia 实验室的 pulpito 实例在此处。
有时,在调度包含大量作业的运行后,您可能只想重新调度那些失败或因其他原因终止的作业。对于这种情况,teuthology-suite 有一个 –rerun/-r 标志,以及一个可选的 –rerun-statuses/-R 标志。其用法示例是
teuthology-suite -m smithi -c wip-pdonnell-testing-20170718 --rerun pdonnell-2017-07-19_19:04:52-multimds-wip-pdonnell-testing-20170718-testing-basic-smithi -R dead --dry-run