仓库测试工具套件
项目概述
本项目是一个综合性的仓库测试工具套件,用于测试和验证软件仓库的各种特性和功能。它提供了一系列工具来检查仓库数据的一致性、软件包签名、哈希值、依赖关系等。
架构设计
项目已重构为模块化架构,将功能划分为不同的模块,便于维护和扩展。
目录结构
repo_test/
├── script/
│ └── 测试项 #测试脚本
│
├── common/ # 通用工具模块
│ ├── __init__.py
│ ├── config.py # 配置管理
│ ├── file_utils.py # 文件处理工具
│ ├── http_utils.py # HTTP请求工具
│ └── logger.py # 日志管理
├── config/ # 配置文件目录
│ └── repo_configs.json # 仓库配置
├── repodata/ # 仓库数据检查模块
│ ├── __init__.py
│ ├── checker.py # 仓库检查器
│ └── parser.py # 仓库数据解析
├── main.py # 主执行文件
├── requirements.txt # 依赖列表
└── README.md # 项目说明
测试项
- 仓库repodata数据校验
- 软件包签名
- 软件包哈希值
- 黑名单二次校验
- 单个软件包安装、卸载
- 源码包下所有二进制包升降级
- 软件包依赖检查
- 软件包兼容性对比
- v10spx 产品升级
- v10spx 仓库软件包对比
功能模块
1. 仓库数据检查 (repodata)
检查仓库元数据的一致性,确保repodata中的软件包列表与实际可下载的软件包一致。
用法:
python main.py --config config/repo_configs.json
2. 配置管理 (common.config)
用于加载和管理各种配置文件,支持JSON、YAML、和yum仓库原生格式。
3. HTTP工具 (common.http_utils)
处理HTTP请求和下载功能的工具类。
4. 文件工具 (common.file_utils)
处理文件操作和压缩文件的工具类。
5. 日志管理 (common.logger)
提供统一的日志记录功能。
安装依赖
pip install -r requirements.txt
命令行参数
主程序支持以下命令行参数:
--config: 配置文件路径--output-dir: 输出目录(默认: ./results)--max-workers: 最大并行检查线程数(默认: 5)--product: 仅检查指定产品--arch: 仅检查指定架构--verbose: 显示详细日志
配置文件格式
配置文件支持JSON和YAML格式,示例如下:
{
"repo_configs": [
{
"product": "V10-SP3",
"base_url": "https://update.cs2c.com.cn/private_test/repo/V10/V10SP3/os/adv/lic/",
"architectures": ["x86_64", "aarch64", "loongarch64"],
"repo_types": ["updates"]
}
]
}
输出文件
repo_rpmlist_check_results.log: 完整测试结果repo_rpmlist_check_fail.log: 仅包含失败的测试结果error_*.log: 各个仓库的详细错误信息
Description
Languages
Python
98.6%
Shell
1.4%