# 基础概念

## 抽象名词

| 名称           | 含义                                                                                                                       |
| -------------- | -------------------------------------------------------------------------------------------------------------------------- |
| Case           | 测试用例 <https://tcms.pingcap.net/dashboard/cases>                                                                        |
| Testbed        | 测试所需的资源。比如 TiDB、MySQL 和 Kafka 等                                                                               |
| Resource Pool  | K8s 资源池，用于在里面创建 Testbed                                                                                         |
| Plan           | 测试计划。是最小的可运行单元，由一个 Testbed 和多个 Case 组成，Plan 内的所有 Case 共用一个 Testbed，可编排 Case 的执行顺序 |
| Execution      | 测试结果 <https://tcms.pingcap.net/dashboard/executions>                                                                   |
| OneShot (Plan) | 运行一次 Plan，通过 `tcctl run` 运行                                                                                       |
| Daily Plan     | 每天或每周定时运行的 Plan，在 [test-plan](https://github.com/pingcap/test-plan) 中管理                                     |
| Online/Prod    | 正式环境                                                                                                                   |
| Staging        | 预发环境                                                                                                                   |

## 组件

| 名称                                              | 含义                                                                   |
| ------------------------------------------------- | ---------------------------------------------------------------------- |
| [test-plan](https://github.com/pingcap/test-plan) | 管理 Daily Plan 和发版的仓库                                           |
| [tcctl](../../tools/tcctl)                        | 操作服务和资源的工具                                                   |
| [sdk](../../sdk)                                  | 操作资源的 Go 库                                                       |
| [Endless](https://github.com/pingcap/endless)     | 用于编写 Case 的框架（使用 sdk 操作资源）                              |
| [TCMS](../../services/tcms)                       | 测试自动化平台 <https://tcms.pingcap.net>                              |
| [RMS](../../services/rms)                         | 管理资源的服务                                                         |
| [TPS](../../services/tps)                         | test-infra 背后的调度服务                                              |
| Argo                                              | test-infra 背后的测试引擎 <https://github.com/argoproj/argo-workflows> |

## 架构

![life-of-execution](static/life-of-execution.jpg)
