在操作系统选型过程中,POC 是技术决策的核心环节。传统测试流程面临三大挑战:

1、环境初始化复杂:依赖人工配置网络、存储等基础环境,耗时且易出错;

2、测试项碎片化:基础功能(网络、磁盘、CPU、内存)、国密、性能测试……需组合使用 多种工具(如 FIO、UnixBench),数据难以横向对比;

3、国测测试门槛高:国密算法、完整性验证等需结合特定工具,流程未行程标准化。

4、测试自动化程度低:依赖人工干预,效率低下。

为解决这些工程级痛点,OpenCloudOS 团队研发并开源了 Auto-POC(Proof of Concept)项目。这是一个专为OS功能和性能验证打造的自动化测试套件。在 OpenCloudOS 中,Auto-POC 通过“开箱即用”的方式,为用户提供包括基础功能测试、性能微基准测试、安全专项测试在内的测试能力,并提供报告一键生成和Word等多文本格式导出的功能。

一、关于 Auto-POC 测试项及设计亮点

1、Auto-POC 核心测试项

目前 Auto-POC 脚本可用于执行一系列的系统测试任务,包括用户管理、系统配置、YUM 操作、磁盘 I/O 测试、内存稳定性测试、CPU 稳定性测试以及 UnixBench 测试。具体涵盖以下几大模块:

  • 基础功能验证:网络配置(DHCP/静态)、软件源可用性、磁盘管理、CPU基础能力、内存稳定性等 15 类测试;
  • 系统完整性测试:验证系统关键组件和文件的完整性;
  • 性能压测引擎:

○ 磁盘:集成FIO,测试磁盘IOPS、带宽、延迟等关键指标;

○ 内存:集成IOZone,测试内存文件操作性能,覆盖读写、随机读写等;

○ 综合:UnixBench 系统评分

  • 安全合规专项:

○ 国密算法(SM2/SM3/SM4)支持性验证

○ 文件完整性(AIDE)检测

○ SELinux 强制访问控制规则测试

2、Auto-POC 技术设计亮点

  • 一键启动,全自动执行: Auto-POC 设计了自动化流程。从环境初始化开始,到最终测试报告生成,一是减少了手动配置投入,二是全程极少需要人工干预。
  • 标准化输出,结果清晰可比: 所有测试结果以结构化、标准化的格式(如JSON)输出,同时也支持Word等标准文档格式输出。方便查看、对比分析和集成到其他系统。性能测试数据具有横向和纵向可比性。
  • 高度可扩展:1)框架设计灵活,用户可根据自身需求添加新的测试用例或集成更多测试工具,持续扩展测试能力;2)不仅支持 OpenCloudOS 系统,也可以支持部署和测试其他类 CentOS 系统
  • 拥抱自动化运维/DevOps: 命令行接口友好,可集成到 CI/CD 流水线、自动化运维平台中,实现OS部署后的无人值守自动化验证。

二、 快速体验Auto-POC

1、环境准备:

请在可以访问 OpenCloudOS 镜像站的机器中构建,构建机的系统需要是 OpenCloudOS 8 及以上版本(需要用到新版 dnf 包管理器)。

2、运行脚本:

Shell 脚本 build.sh:

使用以下命令运行脚本:

./build.sh -p <download_path> -l "<package_list>" -r <releasever> -a <arch>
  • <download_path>: 指定下载路径,默认为 "rpms"。
  • <package_list>: 指定要下载的 RPM 包列表,用双引号括起来,以空格分隔。
  • : 指定系统版本,默认为当前系统的版本。
  • : 指定系统架构,默认为当前系统的架构,64 位 arm 请使用 aarch64。

请注意:由于构建 tar 包的系统与待测试系统的系统版本和架构很有可能不同,因此需要注意在必要的时候提供合适的参数

如为 OpenCloudOS 8 构建测试 tar 包需要运行命令 ./build.sh -r 8。

3、 在被测机中测试

  • 请确保系统中已安装了 Python。
  • 配置文件为 config.yaml,可以通过编辑此文件来配置测试的参数。配置文件需要与 Python 脚本位于相同目录下。每个测试类的 enable 字段控制该类是否开启测试,可设置为 true 或 false

○ 其余字段根据注释配置

○ shutdown 与 reboot 功能涉及系统的关机与重启,重启后不会自动重新运行脚本

执行脚本:

直接运行 run.sh 脚本即可,可以通过命令 ./run.sh 执行,将自动安装所需软件包并执行 poc 脚本。

4、关键过程:

1)Auto-POC 会自动连接到目标 OpenCloudOS 主机(需要预先配置好SSH访问权限)

2)按需进行环境初始化

3)依次执行测试套件中指定的测试项(如基础功能、完整性)。

4)测试工具(如FIO, IOZone)会在目标主机上自动运行。

5)收集测试结果和日志。

6)自动生成结构化的测试报告(通常位于项目目录的 results/ 或指定输出目录)。

7)生成的报告文件会清晰列出:

  • 每个测试项的通过/失败状态。
  • 性能测试的关键指标数据(带宽、IOPS、延迟等)。
  • 详细的日志信息便于排查问题。

三、 项目地址

目前,Auto-POC 已开源至 OpenCloudOS 仓库,欢迎立即体验:https://gitee.com/OpenCloudOS/auto-poc

我们期待您参与 Auto-POC 项目试用/使用,在您的 OS(不限于 OpenCloudOS)上部署运行。如果使用过程中遇到问题,欢迎在_https://gitee.com/OpenCloudOS/auto-poc/issues_ 提交 Issue。同时也欢迎您参与该项目贡献,贡献类型包括但不限于:

  • 新的测试用例;
  • 参与框架核心功能 Pull Request,提升工具稳定性、性能和易用性;
  • 协同完善国密测试场景。

更多更新的功能持续开源中。

关注腾讯开源公众号

文章来源于腾讯云开发者社区,点击查看原文