在操作系统选型过程中,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,提升工具稳定性、性能和易用性;
- 协同完善国密测试场景。
更多更新的功能持续开源中。
关注腾讯开源公众号