From cdee63754f422146bae504951b24d2ecd5d318df Mon Sep 17 00:00:00 2001 From: Feng Chao Date: Thu, 23 Jan 2025 14:46:59 +0800 Subject: [PATCH] add chinese README by charles --- README-CN.md | 393 +++++++++++++++++++++++++-------------------- tests/README-CN.md | 232 ++++++++++++++++++++++++++ 2 files changed, 452 insertions(+), 173 deletions(-) create mode 100644 tests/README-CN.md diff --git a/README-CN.md b/README-CN.md index 99bbf9aabdf1..53180c127bbf 100644 --- a/README-CN.md +++ b/README-CN.md @@ -10,7 +10,36 @@ 简体中文 | [English](README.md) | [TDengine 云服务](https://cloud.taosdata.com/?utm_medium=cn&utm_source=github) | 很多职位正在热招中,请看[这里](https://www.taosdata.com/careers/) -# TDengine 简介 +# 目录 + +1. [TDengine 简介](#1-tdengine-简介) +1. [文档](#2-文档) +1. [必备工具](#3-必备工具) + - [3.1 Linux预备](#31-linux系统) + - [3.2 macOS预备](#32-macos系统) + - [3.3 Windows预备](#33-windows系统) + - [3.4 克隆仓库](#34-克隆仓库) +1. [构建](#4-构建) + - [4.1 Linux系统上构建](#41-linux系统上构建) + - [4.2 macOS系统上构建](#42-macos系统上构建) + - [4.3 Windows系统上构建](#43-windows系统上构建) +1. [打包](#5-打包) +1. [安装](#6-安装) + - [6.1 Linux系统上安装](#61-linux系统上安装) + - [6.2 macOS系统上安装](#62-macos系统上安装) + - [6.3 Windows系统上安装](#63-windows系统上安装) +1. [快速运行](#7-快速运行) + - [7.1 Linux系统上运行](#71-linux系统上运行) + - [7.2 macOS系统上运行](#72-macos系统上运行) + - [7.3 Windows系统上运行](#73-windows系统上运行) +1. [测试](#8-测试) +1. [版本发布](#9-版本发布) +1. [工作流](#10-工作流) +1. [覆盖率](#11-覆盖率) +1. [成为社区贡献者](#12-成为社区贡献者) + + +# 1. 简介 TDengine 是一款开源、高性能、云原生的时序数据库 (Time-Series Database, TSDB)。TDengine 能被广泛运用于物联网、工业互联网、车联网、IT 运维、金融等领域。除核心的时序数据库功能外,TDengine 还提供缓存、数据订阅、流式计算等功能,是一极简的时序数据处理平台,最大程度的减小系统设计的复杂度,降低研发和运营成本。与其他时序数据库相比,TDengine 的主要优势如下: @@ -26,323 +55,341 @@ TDengine 是一款开源、高性能、云原生的时序数据库 (Time-Series - **核心开源**:TDengine 的核心代码包括集群功能全部开源,截止到2022年8月1日,全球超过 135.9k 个运行实例,GitHub Star 18.7k,Fork 4.4k,社区活跃。 -# 文档 +了解TDengine高级功能的完整列表,请 [点击](https://tdengine.com/tdengine/)。体验TDengine最简单的方式是通过[TDengine云平台](https://cloud.tdengine.com)。 -关于完整的使用手册,系统架构和更多细节,请参考 [TDengine 文档](https://docs.taosdata.com) 或者 [TDengine Documentation](https://docs.tdengine.com)。 +# 2. 文档 -# 构建 +关于完整的使用手册,系统架构和更多细节,请参考 [TDengine ](https://tdengine.com/tdengine/) 或者 [TDengine Documentation](https://docs.tdengine.com)。 -TDengine 目前可以在 Linux、 Windows、macOS 等平台上安装和运行。任何 OS 的应用也可以选择 taosAdapter 的 RESTful 接口连接服务端 taosd。CPU 支持 X64/ARM64,后续会支持 MIPS64、Alpha64、ARM32、RISC-V 等 CPU 架构。目前不支持使用交叉编译器构建。 - -用户可根据需求选择通过源码、[容器](https://docs.taosdata.com/get-started/docker/)、[安装包](https://docs.taosdata.com/get-started/package/)或[Kubernetes](https://docs.taosdata.com/deployment/k8s/)来安装。本快速指南仅适用于通过源码安装。 - -TDengine 还提供一组辅助工具软件 taosTools,目前它包含 taosBenchmark(曾命名为 taosdemo)和 taosdump 两个软件。默认 TDengine 编译不包含 taosTools, 您可以在编译 TDengine 时使用`cmake .. -DBUILD_TOOLS=true` 来同时编译 taosTools。 - -为了构建TDengine, 请使用 [CMake](https://cmake.org/) 3.13.0 或者更高版本。 - -## 安装工具 +# 3. 必备工具 -### Ubuntu 18.04 及以上版本 & Debian: +## 3.1 Linux系统 -```bash -sudo apt-get install -y gcc cmake build-essential git libssl-dev libgflags2.2 libgflags-dev -``` +
-#### 为 taos-tools 安装编译需要的软件 +安装Linux必备工具 -为了在 Ubuntu/Debian 系统上编译 [taos-tools](https://github.com/taosdata/taos-tools) 需要安装如下软件: +### Ubuntu 18.04、20.04、22.04 ```bash -sudo apt install build-essential libjansson-dev libsnappy-dev liblzma-dev libz-dev zlib1g pkg-config +sudo apt-get udpate +sudo apt-get install -y gcc cmake build-essential git libjansson-dev \ + libsnappy-dev liblzma-dev zlib1g-dev pkg-config ``` -### CentOS 7.9 +### CentOS 8 ```bash -sudo yum install epel-release sudo yum update -sudo yum install -y gcc gcc-c++ make cmake3 gflags git openssl-devel -sudo ln -sf /usr/bin/cmake3 /usr/bin/cmake -``` - -### CentOS 8/Fedora/Rocky Linux - -```bash -sudo dnf install -y gcc gcc-c++ gflags make cmake epel-release git openssl-devel +yum install -y epel-release gcc gcc-c++ make cmake git perl dnf-plugins-core +yum config-manager --set-enabled powertools +yum install -y zlib-static xz-devel snappy-devel jansson-devel pkgconfig libatomic-static libstdc++-static ``` -#### 在 CentOS 上构建 taosTools 安装依赖软件 +
+## 3.2 macOS系统 -#### CentOS 7.9 +
+安装macOS必备工具 -``` -sudo yum install -y zlib-devel zlib-static xz-devel snappy-devel jansson jansson-devel pkgconfig libatomic libatomic-static libstdc++-static openssl-devel -``` +根据提示安装依赖工具 [brew](https://brew.sh/). -#### CentOS 8/Fedora/Rocky Linux - -``` -sudo yum install -y epel-release -sudo yum install -y dnf-plugins-core -sudo yum config-manager --set-enabled powertools -sudo yum install -y zlib-devel zlib-static xz-devel snappy-devel jansson jansson-devel pkgconfig libatomic libatomic-static libstdc++-static openssl-devel -``` - -注意:由于 snappy 缺乏 pkg-config 支持(参考 [链接](https://github.com/google/snappy/pull/86)),会导致 cmake 提示无法发现 libsnappy,实际上工作正常。 - -若 powertools 安装失败,可以尝试改用: -``` -sudo yum config-manager --set-enabled powertools -``` - -#### CentOS + devtoolset - -除上述编译依赖包,需要执行以下命令: - -``` -sudo yum install centos-release-scl -sudo yum install devtoolset-9 devtoolset-9-libatomic-devel -scl enable devtoolset-9 -- bash -``` - -### macOS - -``` +```bash brew install argp-standalone gflags pkgconfig ``` -### 设置 golang 开发环境 +
-TDengine 包含数个使用 Go 语言开发的组件,比如taosAdapter, 请参考 golang.org 官方文档设置 go 开发环境。 +## 3.3 Windows系统 -请使用 1.20 及以上版本。对于中国用户,我们建议使用代理来加速软件包下载。 +
-``` -go env -w GO111MODULE=on -go env -w GOPROXY=https://goproxy.cn,direct -``` +安装Windows必备工具 -缺省是不会构建 taosAdapter, 但您可以使用以下命令选择构建 taosAdapter 作为 RESTful 接口的服务。 +进行中。 -``` -cmake .. -DBUILD_HTTP=false -``` +
-### 设置 rust 开发环境 +## 3.4 克隆仓库 -TDengine 包含数个使用 Rust 语言开发的组件. 请参考 rust-lang.org 官方文档设置 rust 开发环境。 +
-## 获取源码 +克隆仓库 -首先,你需要从 GitHub 克隆源码: +通过如下命令将TDengine仓库克隆到指定计算机: ```bash git clone https://github.com/taosdata/TDengine.git cd TDengine ``` -如果使用 https 协议下载比较慢,可以通过修改 ~/.gitconfig 文件添加以下两行设置使用 ssh 协议下载。需要首先上传 ssh 密钥到 GitHub,详细方法请参考 GitHub 官方文档。 -``` -[url "git@github.com:"] - insteadOf = https://github.com/ -``` -## 特别说明 +> **注意:** +> 想连接更多TDengine连接器,可参考以下仓库: [JDBC连接器](https://github.com/taosdata/taos-connector-jdbc), [Go连接器](https://github.com/taosdata/driver-go), [Python连接器](https://github.com/taosdata/taos-connector-python), [Node.js连接器](https://github.com/taosdata/taos-connector-node), [C#连接器](https://github.com/taosdata/taos-connector-dotnet), [Rust连接器](https://github.com/taosdata/taos-connector-rust). + +
-[JDBC 连接器](https://github.com/taosdata/taos-connector-jdbc), [Go 连接器](https://github.com/taosdata/driver-go),[Python 连接器](https://github.com/taosdata/taos-connector-python),[Node.js 连接器](https://github.com/taosdata/taos-connector-node),[C# 连接器](https://github.com/taosdata/taos-connector-dotnet) ,[Rust 连接器](https://github.com/taosdata/taos-connector-rust) 和 [Grafana 插件](https://github.com/taosdata/grafanaplugin)已移到独立仓库。 +# 4. 构建 +TDengine 目前可以在 Linux、 Windows、macOS 等平台上安装和运行。任何 OS 的应用也可以选择 taosAdapter 的 RESTful 接口连接服务端 taosd。CPU 支持 X64/ARM64,后续会支持 MIPS64、Alpha64、ARM32、RISC-V 等 CPU 架构。目前不支持使用交叉编译器构建。 + +用户可根据需求选择通过源码、[容器](https://docs.taosdata.com/get-started/docker/)、[安装包](https://docs.taosdata.com/get-started/package/)或[Kubernetes](https://docs.taosdata.com/deployment/k8s/)来安装。本快速指南仅适用于通过源码安装。 + +TDengine 还提供一组辅助工具软件 taosTools,目前它包含 taosBenchmark(曾命名为 taosdemo)和 taosdump 两个软件。默认 TDengine 编译不包含 taosTools, 您可以在编译 TDengine 时使用`cmake .. -DBUILD_TOOLS=true` 来同时编译 taosTools。 + +为了构建TDengine, 请使用 [CMake](https://cmake.org/) 3.13.0 或者更高版本。 +## 4.1 Linux系统上构建 -## 构建 TDengine +
-### Linux 系统 +Linux系统上构建步骤 -可以运行代码仓库中的 `build.sh` 脚本编译出 TDengine 和 taosTools(包含 taosBenchmark 和 taosdump)。 +可以通过以下命令使用脚本 `build.sh` 编译TDengine和taosTools,包括taosBenchmark和taosdump: ```bash ./build.sh ``` -这个脚本等价于执行如下命令: +也可以通过以下命令进行构建: ```bash -mkdir debug -cd debug +mkdir debug && cd debug cmake .. -DBUILD_TOOLS=true -DBUILD_CONTRIB=true make ``` -您也可以选择使用 jemalloc 作为内存分配器,替代默认的 glibc: +可以使用Jemalloc作为内存分配器,而不是使用glibc: ```bash -apt install autoconf cmake .. -DJEMALLOC_ENABLED=true ``` - -在 X86-64、X86、arm64 平台上,TDengine 生成脚本可以自动检测机器架构。也可以手动配置 CPUTYPE 参数来指定 CPU 类型,如 aarch64 等。 - -aarch64: +TDengine构建脚本可以自动检测x86、x86-64、arm64平台上主机的体系结构。 +您也可以通过CPUTYPE选项手动指定架构: ```bash cmake .. -DCPUTYPE=aarch64 && cmake --build . ``` -### Windows 系统 +
-如果你使用的是 Visual Studio 2013 版本: +## 4.2 macOS系统上构建 -打开 cmd.exe,执行 vcvarsall.bat 时,为 64 位操作系统指定“x86_amd64”,为 32 位操作系统指定“x86”。 +
-```bash +macOS系统上构建步骤 + +请安装XCode命令行工具和cmake。使用XCode 11.4+在Catalina和Big Sur上完成验证。 + +```shell mkdir debug && cd debug -"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" < x86_amd64 | x86 > +cmake .. && cmake --build . +``` + +
+ +## 4.3 Windows系统上构建 + +
+ +Windows系统上构建步骤 + +如果您使用的是Visual Studio 2013,请执行“cmd.exe”打开命令窗口执行如下命令。 +执行vcvarsall.bat时,64位的Windows请指定“amd64”,32位的Windows请指定“x86”。 + +```cmd +mkdir debug && cd debug +"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" < amd64 | x86 > cmake .. -G "NMake Makefiles" nmake ``` -如果你使用的是 Visual Studio 2019 或 2017 版本: +如果您使用Visual Studio 2019或2017: -打开 cmd.exe,执行 vcvarsall.bat 时,为 64 位操作系统指定“x64”,为 32 位操作系统指定“x86”。 +请执行“cmd.exe”打开命令窗口执行如下命令。 +执行vcvarsall.bat时,64位的Windows请指定“x64”,32位的Windows请指定“x86”。 -```bash +```cmd mkdir debug && cd debug "c:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" < x64 | x86 > cmake .. -G "NMake Makefiles" nmake ``` -你也可以从开始菜单中找到"Visual Studio < 2019 | 2017 >"菜单项,根据你的系统选择"x64 Native Tools Command Prompt for VS < 2019 | 2017 >"或"x86 Native Tools Command Prompt for VS < 2019 | 2017 >",打开命令行窗口,执行: +或者,您可以通过点击Windows开始菜单打开命令窗口->“Visual Studio < 2019 | 2017 >”文件夹->“x64原生工具命令提示符VS < 2019 | 2017 >”或“x86原生工具命令提示符VS < 2019 | 2017 >”取决于你的Windows是什么架构,然后执行命令如下: -```bash +```cmd mkdir debug && cd debug cmake .. -G "NMake Makefiles" nmake ``` +
-### macOS 系统 +# 5. 打包 -安装 XCode 命令行工具和 cmake. 在 Catalina 和 Big Sur 操作系统上,需要安装 XCode 11.4+ 版本。 +由于一些组件依赖关系,TDengine社区安装程序不能仅由该存储库创建。我们仍在努力改进。 + +# 6. 安装 -```bash -mkdir debug && cd debug -cmake .. && cmake --build . -``` -# 安装 +## 6.1 Linux系统上安装 -## Linux 系统 +
-生成完成后,安装 TDengine: +Linux系统上安装详细步骤 + +构建成功后,TDengine可以通过以下命令进行安装: ```bash sudo make install ``` +从源代码安装还将为TDengine配置服务管理。用户也可以使用[TDengine安装包](https://docs.tdengine.com/get-started/deploy-from-package/)进行安装。 -用户可以在[文件目录结构](https://docs.taosdata.com/reference/directory/)中了解更多在操作系统中生成的目录或文件。 +
-从源代码安装也会为 TDengine 配置服务管理 ,用户也可以选择[从安装包中安装](https://docs.taosdata.com/get-started/package/)。 +## 6.2 macOS系统上安装 -安装成功后,在终端中启动 TDengine 服务: +
-```bash -sudo systemctl start taosd -``` +macOS系统上安装详细步骤 -用户可以使用 TDengine CLI 来连接 TDengine 服务,在终端中,输入: +构建成功后,TDengine可以通过以下命令进行安装: ```bash -taos +sudo make install ``` -如果 TDengine CLI 连接服务成功,将会打印出欢迎消息和版本信息。如果失败,则会打印出错误消息。 +
+ +## 6.3 Windows系统上安装 -## Windows 系统 +
-生成完成后,安装 TDengine: +Windows系统上安装详细步骤 + +构建成功后,TDengine可以通过以下命令进行安装: ```cmd nmake install ``` -## macOS 系统 +
+ +# 7. 快速运行 -生成完成后,安装 TDengine: +## 7.1 Linux系统上运行 + +
+ +Linux系统上运行详细步骤 + +在Linux系统上安装TDengine完成后,在终端运行如下命令启动服务: ```bash -sudo make install +sudo systemctl start taosd ``` +然后用户可以通过如下命令使用TDengine命令行连接TDengine服务: -用户可以在[文件目录结构](https://docs.taosdata.com/reference/directory/)中了解更多在操作系统中生成的目录或文件。 +```bash +taos +``` -从源代码安装也会为 TDengine 配置服务管理 ,用户也可以选择[从安装包中安装](https://docs.taosdata.com/get-started/package/)。 +如果TDengine 命令行连接服务器成功,系统将打印欢迎信息和版本信息。否则,将显示连接错误信息。 -安装成功后,可以在应用程序中双击 TDengine 图标启动服务,或者在终端中启动 TDengine 服务: +如果您不想将TDengine作为服务运行,您可以在当前终端中运行它。例如,要在构建完成后快速启动TDengine服务器,在终端中运行以下命令:(我们以Linux为例,Windows上的命令为 `taosd.exe`) ```bash -sudo launchctl start com.tdengine.taosd +./build/bin/taosd -c test/cfg ``` -用户可以使用 TDengine CLI 来连接 TDengine 服务,在终端中,输入: +在另一个终端上,使用TDengine命令行连接服务器: ```bash -taos +./build/bin/taos -c test/cfg ``` -如果 TDengine CLI 连接服务成功,将会打印出欢迎消息和版本信息。如果失败,则会打印出错误消息。 +选项 `-c test/cfg` 指定系统配置文件的目录。 + +
+ +## 7.2 macOS系统上运行 + +
-## 快速运行 +macOS系统上运行详细步骤 -如果不希望以服务方式运行 TDengine,也可以在终端中直接运行它。也即在生成完成后,执行以下命令(在 Windows 下,生成的可执行文件会带有 .exe 后缀,例如会名为 taosd.exe ): +在macOS上安装完成后启动服务,双击/applications/TDengine启动程序,或者在终端中执行如下命令: ```bash -./build/bin/taosd -c test/cfg +sudo launchctl start com.tdengine.taosd ``` -在另一个终端,使用 TDengine CLI 连接服务器: +然后在终端中使用如下命令通过TDengine命令行连接TDengine服务器: ```bash -./build/bin/taos -c test/cfg +taos ``` -"-c test/cfg"指定系统配置文件所在目录。 +如果TDengine命令行连接服务器成功,系统将打印欢迎信息和版本信息。否则,将显示错误信息。 -# 体验 TDengine +
+ + +## 7.3 Windows系统上运行 + +
+ +Windows系统上运行详细步骤 + +您可以使用以下命令在Windows平台上启动TDengine服务器: + +```cmd +.\build\bin\taosd.exe -c test\cfg +``` -在 TDengine 终端中,用户可以通过 SQL 命令来创建/删除数据库、表等,并进行插入查询操作。 +在另一个终端上,使用TDengine命令行连接服务器: -```sql -CREATE DATABASE demo; -USE demo; -CREATE TABLE t (ts TIMESTAMP, speed INT); -INSERT INTO t VALUES('2019-07-15 00:00:00', 10); -INSERT INTO t VALUES('2019-07-15 01:00:00', 20); -SELECT * FROM t; - ts | speed | -=================================== - 19-07-15 00:00:00.000| 10| - 19-07-15 01:00:00.000| 20| -Query OK, 2 row(s) in set (0.001700s) +```cmd +.\build\bin\taos.exe -c test\cfg ``` -# 应用开发 +选项 `-c test/cfg` 指定系统配置文件的目录。 -## 官方连接器 +
-TDengine 提供了丰富的应用程序开发接口,其中包括 C/C++、Java、Python、Go、Node.js、C# 、RESTful 等,便于用户快速开发应用: +# 8. 测试 -- [Java](https://docs.taosdata.com/reference/connector/java/) -- [C/C++](https://docs.taosdata.com/reference/connector/cpp/) -- [Python](https://docs.taosdata.com/reference/connector/python/) -- [Go](https://docs.taosdata.com/reference/connector/go/) -- [Node.js](https://docs.taosdata.com/reference/connector/node/) -- [Rust](https://docs.taosdata.com/reference/connector/rust/) -- [C#](https://docs.taosdata.com/reference/connector/csharp/) -- [RESTful API](https://docs.taosdata.com/reference/connector/rest-api/) +有关如何在TDengine上运行不同类型的测试,请参考 [TDengine测试](./tests/README-CN.md) -# 成为社区贡献者 +# 9. 版本发布 -点击 [这里](https://www.taosdata.com/contributor),了解如何成为 TDengine 的贡献者。 +TDengine发布版本的完整列表,请参考 [版本列表](https://github.com/taosdata/TDengine/releases) + +# 10. 工作流 + +TDengine构建检查工作流可以在参考 [Github Action](https://github.com/taosdata/TDengine/actions/workflows/taosd-ci-build.yml), 更多的工作流正在创建中,将很快可用。 + +# 11. 覆盖率 + +最新的TDengine测试覆盖率报告可参考 [coveralls.io](https://coveralls.io/github/taosdata/TDengine) + +
-# 加入技术交流群 +如何在本地运行测试覆盖率报告? -TDengine 官方社群「物联网大数据群」对外开放,欢迎您加入讨论。搜索微信号 "tdengine",加小 T 为好友,即可入群。 +在本地创建测试覆盖率报告(HTML格式),请运行以下命令: + +```bash +cd tests +bash setup-lcov.sh -v 1.16 && ./run_local_coverage.sh -b main -c task +# on main branch and run cases in longtimeruning_cases.task +# for more infomation about options please refer to ./run_local_coverage.sh -h +``` +> **注意:** +> 请注意,-b和-i选项将使用-DCOVER=true选项重新编译TDengine,这可能需要花费一些时间。 + +
+ +# 12. 成为社区贡献者 + +点击 [这里](https://www.taosdata.com/contributor),了解如何成为 TDengine 的贡献者。 diff --git a/tests/README-CN.md b/tests/README-CN.md new file mode 100644 index 000000000000..ea08e2c3e258 --- /dev/null +++ b/tests/README-CN.md @@ -0,0 +1,232 @@ +# 目录 + +1. [简介](#1-简介) +2. [必备工具](#2-必备工具) +3. [测试指南](#3-测试指南) + - [3.1 单元测试](#31-单元测试) + - [3.2 系统测试](#32-系统测试) + - [3.3 TSIM测试](#33-tsim测试) + - [3.4 冒烟测试](#34-冒烟测试) + - [3.5 混沌测试](#35-混沌测试) + - [3.6 CI测试](#36-ci测试) + +# 1. 简介 + +本手册旨在为开发人员提供有效测试TDengine的全面指导。它分为三个主要部分:简介,必备工具和测试指南。 + +> [!NOTE] +> - 本文档所有的命令和脚本在Linux(Ubuntu 18.04/20.04/22.04)上进行了验证。 +> - 本文档所有的命令和脚本用于在单个主机上运行测试。 + +# 2. 必备工具 + +- 安装Python3 + +```bash +apt install python3 +apt install python3-pip +``` + +- 安装Python依赖工具包 + +```bash +pip3 install pandas psutil fabric2 requests faker simplejson \ + toml pexpect tzlocal distro decorator loguru hyperloglog +``` + +- 安装TDengine的Python连接器 + +```bash +pip3 install taospy taos-ws-py +``` + +- 构建 + +在测试之前,请确保选项“-DBUILD_TOOLS=true -DBUILD_TEST=true -DBUILD_CONTRIB=true”的构建操作已经完成,如果没有,请执行如下命令: + +```bash +cd debug +cmake .. -DBUILD_TOOLS=true -DBUILD_TEST=true -DBUILD_CONTRIB=true +make && make install +``` + +# 3. 测试指南 + +在 `tests` 目录中,TDengine有不同类型的测试。下面是关于如何运行它们以及如何添加新测试用例的简要介绍。 + +### 3.1 单元测试 + +单元测试是最小的可测试单元,用于测试TDengine代码中的函数、方法或类。 + +### 3.1.1 如何运行单个测试用例? + +```bash +cd debug/build/bin +./osTimeTests +``` + +### 3.1.2 如何运行所有测试用例? + +```bash +cd tests/unit-test/ +bash test.sh -e 0 +``` + +### 3.1.3 如何添加测试用例? + +
+ +添加新单元测试用例的详细步骤 + +Google测试框架用于对特定功能模块进行单元测试,请参考以下步骤添加新的测试用例: + +##### a. 创建测试用例文件并开发测试脚本 + +在目标功能模块对应的测试目录下,创建CPP格式的测试文件,编写相应的测试用例。 + +##### b. 更新构建配置 + +修改此目录中的CMakeLists.txt文件, 以确保新的测试文件被包含在编译过程中。配置示例可参考 `source/os/test/CMakeLists.txt` + +##### c. 编译测试代码 + +在项目的根目录下,创建一个编译目录 (例如 debug), 切换到该目录并运行cmake命令 (如 `cmake .. -DBUILD_TEST=1` ) 生成编译文件, +然后运行make命令(如 make)来完成测试代码的编译。 + +##### d. 执行测试 + +在编译目录中找到可执行文件并运行它 (如:`TDengine/debug/build/bin/`)。 + +##### e. 集成用例到CI测试 + +使用add_test命令将新编译的测试用例添加到CI测试集合中,确保新添加的测试用例可以在每次构建运行。 + +
+ +## 3.2 系统测试 + +系统测试是用Python编写的端到端测试用例。其中一些特性仅在企业版中支持和测试,因此在社区版上运行时,它们可能会失败。我们将逐渐通过将用例分成不同的组来解决这个问题。 + +### 3.2.1 如何运行单个测试用例? + +以测试文件 `system-test/2-query/avg.py` 举例,可以使用如下命令运行单个测试用例: + +```bash +cd tests/system-test +python3 ./test.py -f 2-query/avg.py +``` + +### 3.2.2 如何运行所有测试用例? + +```bash +cd tests +./run_all_ci_cases.sh -t python # all python cases +``` + +### 3.2.3 如何添加测试用例? + +
+ +添加新系统测试用例的详细步骤 + +Python测试框架由TDengine团队开发, test.py是测试用例执行和监控的入口程序,使用 `python3 ./test.py -h` 查看更多功能。 + +请参考下面的步骤来添加一个新的测试用例: + +##### a. 创建一个测试用例文件并开发测试用例 + +在目录 `tests/system-test` 下的某个功能目录创建一个测试用例文件, 并参考用例模板 `tests/system-test/0-others/test_case_template.py` 来添加一个新的测试用例。 + +##### b. 执行测试用例 + +使用如下命令执行测试用例, 并确保用例执行成功。 + +``` bash +cd tests/system-test && python3 ./test.py -f 0-others/test_case_template.py +``` + +##### c. 集成用例到CI测试 + +编辑 `tests/parallel_test/cases.task`, 以指定的格式添加测试用例路径。文件的第三列表示是否使用 Address Sanitizer 模式进行测试。 + +```bash +#caseID,rerunTimes,Run with Sanitizer,casePath,caseCommand +,,n,system-test, python3 ./test.py -f 0-others/test_case_template.py +``` + +
+ +## 3.3 TSIM测试 + +在TDengine开发的早期阶段, TDengine团队用C++开发的内部测试框架 TSIM。 + +### 3.3.1 如何运行单个测试用例? + +要运行TSIM测试用例,请执行如下命令: + +```bash +cd tests/script +./test.sh -f tsim/db/basic1.sim +``` + +### 3.3.2 如何运行所有TSIM测试用例? + +```bash +cd tests +./run_all_ci_cases.sh -t legacy # all legacy cases +``` + +### 3.3.3 如何添加TSIM测试用例? + +> [!NOTE] +> TSIM测试框架现已被系统测试弃用,建议在系统测试中增加新的测试用例,请参考 [系统测试](#32-系统测试)。 + +## 3.4 冒烟测试 + +冒烟测试是从系统测试中选择的一组测试用例,也称为基本功能测试,以确保TDengine的关键功能。 + +### 3.4.1 如何运行冒烟测试? + +```bash +cd /root/TDengine/packaging/smokeTest +./test_smoking_selfhost.sh +``` + +### 3.4.2 如何添加冒烟测试用例? + +可以通过更新 `test_smoking_selfhost.sh` 中的 `commands` 变量的值来添加新的case。 + +## 3.5 混沌测试 + +一个简单的工具,以随机的方式执行系统的各种功能测试,期望在没有预定义测试场景的情况下暴露潜在的问题。 + +### 3.5.1 如何运行混沌测试? + +```bash +cd tests/pytest +python3 auto_crash_gen.py +``` + +### 3.5.2 如何增加混沌测试用例? + +1. 添加一个函数,如 `pytest/crash_gen/crash_gen_main.py` 中的 `TaskCreateNewFunction`。 +2. 将 `TaskCreateNewFunction` 集成到 `crash_gen_main.py` 中的 `balance_pickTaskType` 函数中。 + +## 3.6 CI测试 + +CI测试(持续集成测试)是软件开发中的一项重要实践,旨在将代码频繁地自动集成到共享代码库的过程中,构建和测试它以确保代码的质量和稳定性。 + +TDengine CI测试将运行以下三种测试类型中的所有测试用例:单元测试、系统测试和TSIM测试。 + +### 3.6.1 如何运行所有CI测试用例? + +如果这是第一次运行所有CI测试用例,建议添加测试分支,使用如下命令运行: + +```bash +cd tests +./run_all_ci_cases.sh -b main # on main branch +``` + +### 3.6.2 如何添加新的CI测试用例? + +请参考[单元测试](#31-单元测试)、[系统测试](#32-系统测试)和[TSIM测试](#33-tsim测试)部分,了解添加新测试用例的详细步骤,当在上述测试中添加新用例时,它们将在CI测试自动运行。