!Testground logo

测试计划是具有正式契约的黑盒。Testground 负责注入一组环境变量,测试计划则负责在标准输出上 emit 事件,并在输出目录中生成资产。
用于运行不同语言编写的测试计划,针对不同运行时环境和规模级别:
exec:go 和 docker:go 构建器:将 Go 编写的测试计划编译为可执行文件或容器。local:exec、local:docker、cluster:k8s 运行器:在本地(可执行文件或 Docker)或集群(Kubernetes)中运行测试实例(本地模式适合 2-300 个实例,集群模式适合 300-*** 个实例)。基于 Redis 的轻量级 API,提供同步原语,用于协调分布式测试工作负载:
测试实例能够设置连接性、延迟、抖动、带宽、数据包重复、损坏等参数,以模拟各种网络条件。
通过 TOML 格式的组合文件,指示 Testground:
诊断:通过 pprof(适用于 Go 测试计划)提供自动诊断,指标实时发送到 InfluxDB。指标可以是原始数据点或聚合测量值(如直方图、计数器、仪表、移动平均值等)。
结果:测试计划结束时,所有结果批量推送到 InfluxDB,以便后续探索、分析和可视化。
Testground 适用于需要验证分布式系统行为的场景,包括:
shell$ git clone [***] $ cd testground $ make install # 构建 testground 和 Docker 镜像,供 local:docker 运行器使用 $ testground daemon # 启动守护进程,默认监听 localhost:8042
shell# 将网络测试计划从本仓库导入到 $TESTGROUND_HOME/plans # 有关此路径的更多信息,请访问 [***] $ testground plan import --from ./plans/network
shell# 运行 network 计划中的 ping-pong 测试用例的两个实例, # 使用 docker:go 构建,local:docker 运行 $ testground run single --plan=network --testcase=ping-pong \ --builder=docker:go --runner=local:docker \ --instances=2
仓库的 plans 目录中包含一些基本的、与项目无关的 Testground 测试计划,可通过以下命令链接到 $TESTGROUND_HOME/plans:
shell$ # 从仓库根目录运行以下命令,将所有测试计划符号链接到 $TESTGROUND_HOME/plans $ ln -s $PWD/plans/* $HOME/testground/plans $ testground run single --plan network --testcase ping-pong --builder=docker:go --runner=local:docker --instances=2
可从以下仓库获取项目特定的测试计划:
使用以下命令导入到 $TESTGROUND_HOME/plans:
shell$ testground plan import --git --from [***] --name libp2p $ testground plan import --git --from [***] --name ipfs # 运行 libp2p/dht 测试计划中的 find-peers 测试用例(示例命令) $ testground run single --plan libp2p/dht --testcase find-peers --builder docker:go --runner local:docker <选项>
开发分布式测试计划,就像编写针对本地 API 的单元测试一样:
测试计划调用协调 API 以:
没有特殊的"指挥"节点告诉实例何时做什么。编排和排序由测试计划本身内部实现。
决定要测试的上游软件版本:
在测试计划中:
通过基于 TOML 的组合文件,指示 Testground:
使用单个命令收集测试计划的输出,并使用数据处理脚本和平台(如即将推出的 Jupyter notebooks 集成)得出结论。
请在贡献前阅读我们的 贡献指南。
@daviddias, @stebalien, @jimpick, @aschmahmann, @dirkmc, @yusefnapora。
Testground 团队会议记录可在 github.com/testground/pm 找到。
双重许可:MIT、Apache Software License v2,遵循 Permissive License Stack。
完整文档请访问 docs.testground.ai。如有任何问题或不准确之处,请通过 在本仓库提交文档 issue 报告。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429