Go to file
18210258040 d475212112 初始版本 2026-01-24 13:43:45 +08:00
.vscode 初始版本 2026-01-24 13:43:45 +08:00
config 初始版本 2026-01-24 13:43:45 +08:00
data 初始版本 2026-01-24 13:43:45 +08:00
logs 初始版本 2026-01-24 13:43:45 +08:00
security 初始版本 2026-01-24 13:43:45 +08:00
src 初始版本 2026-01-24 13:43:45 +08:00
.gitignore 初始版本 2026-01-24 13:43:45 +08:00
CHANGELOG.md 初始版本 2026-01-24 13:43:45 +08:00
CONFIG_EDITOR_COMPLETE.md 初始版本 2026-01-24 13:43:45 +08:00
CONFIG_EDITOR_GUIDE.md 初始版本 2026-01-24 13:43:45 +08:00
CONFIG_QUICK_REFERENCE.md 初始版本 2026-01-24 13:43:45 +08:00
ERROR_FIX_LOG.md 初始版本 2026-01-24 13:43:45 +08:00
FEATURE_COMPLETE_REPORT.md 初始版本 2026-01-24 13:43:45 +08:00
LOGIN_LAYOUT_FIX.md 初始版本 2026-01-24 13:43:45 +08:00
LOGIN_OVERLAP_FIX.md 初始版本 2026-01-24 13:43:45 +08:00
PROJECT_STRUCTURE.txt 初始版本 2026-01-24 13:43:45 +08:00
README.md 初始版本 2026-01-24 13:43:45 +08:00
TEST_LOGIC_FIX.md 初始版本 2026-01-24 13:43:45 +08:00
UI_FIX_SUMMARY.md 初始版本 2026-01-24 13:43:45 +08:00
UI_IMPROVEMENTS.md 初始版本 2026-01-24 13:43:45 +08:00
diagnose_serial.py 初始版本 2026-01-24 13:43:45 +08:00
edit_config.py 初始版本 2026-01-24 13:43:45 +08:00
production_test_tool.spec 初始版本 2026-01-24 13:43:45 +08:00
requirements.txt 初始版本 2026-01-24 13:43:45 +08:00
run.bat 初始版本 2026-01-24 13:43:45 +08:00
run.sh 初始版本 2026-01-24 13:43:45 +08:00
test_ui.py 初始版本 2026-01-24 13:43:45 +08:00
verify_imports.py 初始版本 2026-01-24 13:43:45 +08:00
使用指南.md 初始版本 2026-01-24 13:43:45 +08:00
项目完成报告.txt 初始版本 2026-01-24 13:43:45 +08:00

README.md

采集箱出厂测试工具

项目简介

这是一个用于自动化测试和配置采集箱设备的桌面应用程序。通过串口和SSH连接自动完成设备的初始化配置、网络设置、安全加固等出厂测试流程。

功能特性

  • 串口通信: 自动检测串口,建立与设备的串口连接
  • 硬件信息读取: 读取CPU序列号、MAC地址等硬件唯一标识
  • 密码管理: 自动生成高强度随机密码,支持加密存储
  • 网络配置: 自动配置双网卡ETH-H0/ETH-H1网络参数
  • SSH连接: 测试SSH远程连接功能
  • 文件传输: 支持SFTP文件上传下载
  • 系统配置: 时区设置、时间同步等
  • 测试报告: 自动生成测试报告,支持导出
  • 用户管理: 多用户支持,角色权限控制
  • 审计日志: 完整的操作日志记录

项目结构

production_test_tool/
├── src/                      # 源代码目录
│   ├── main.py              # 程序入口
│   ├── models.py            # 数据模型
│   ├── database.py          # 数据库操作
│   ├── serial_manager.py    # 串口管理
│   ├── ssh_manager.py       # SSH管理
│   ├── password_manager.py  # 密码管理
│   ├── test_engine.py       # 测试引擎
│   ├── ui/                  # UI界面模块
│   │   ├── main_window.py   # 主窗口
│   │   ├── login_dialog.py  # 登录对话框
│   │   ├── widgets.py       # 自定义控件
│   │   └── styles.py        # 样式表
│   └── utils/               # 工具模块
│       ├── config.py        # 配置管理
│       ├── logger.py        # 日志工具
│       └── helpers.py       # 辅助函数
├── config/                  # 配置文件
│   ├── config.json          # 主配置
│   └── test_items.json      # 测试项配置
├── data/                    # 数据目录
│   └── production_test.db   # SQLite数据库
├── logs/                    # 日志目录
├── resources/               # 资源文件
│   ├── icons/              # 图标
│   └── templates/          # 模板文件
├── requirements.txt         # Python依赖
└── README.md               # 项目说明

安装要求

系统要求

  • Windows 10/11 或 Linux
  • Python 3.8+
  • 串口设备驱动

Python依赖

pip install -r requirements.txt

主要依赖包:

  • PyQt5 >= 5.15.0 (GUI界面)
  • pyserial >= 3.5 (串口通信)
  • paramiko >= 3.0.0 (SSH连接)
  • cryptography >= 41.0.0 (加密)
  • bcrypt >= 4.0.0 (密码哈希)
  • reportlab >= 4.0.0 (PDF报告)

快速开始

1. 安装依赖

pip install -r requirements.txt

2. 运行程序

python src/main.py

3. 登录系统

  • 默认用户名: admin
  • 默认密码: admin123

4. 开始测试

  1. 输入设备序列号
  2. 选择串口
  3. 点击"开始测试"按钮

配置说明

网络配置 (config/config.json)

{
    "network": {
        "eth0": {
            "connection_name": "ETH-H0",
            "ip": "192.168.0.3",
            "netmask": "255.255.255.0",
            "gateway": "192.168.0.1",
            "ethtool": {
                "speed": 100,
                "duplex": "full",
                "autoneg": "off"
            }
        },
        "eth1": {
            "connection_name": "ETH-H1",
            "ip": "10.0.5.232",
            "netmask": "255.255.255.0",
            "gateway": "10.0.5.1"
        }
    }
}

测试项配置 (config/test_items.json)

可以自定义测试流程,添加或修改测试项目。

📝 配置文件编辑器

新增了专业的 JSON 配置文件编辑窗口,支持可视化编辑配置文件。

快速打开

  • 快捷键: Ctrl+,
  • 菜单: 工具 → 编辑配置文件
  • 脚本: python edit_config.py

功能特性

  • 树形结构展示 JSON 配置
  • 智能编辑器(自动适配数据类型)
  • JSON 格式验证
  • 自动备份原文件
  • 修改跟踪和确认

使用场景

修改串口波特率、网络参数、SSH配置、测试超时等无需手动编辑 JSON。

📖 详见: CONFIG_QUICK_REFERENCE.md

测试流程

  1. 串口连接建立 - 建立与设备的串口通信
  2. 读取硬件信息 - 获取CPU序列号等硬件ID
  3. 修改默认密码 - 将默认密码改为临时密码
  4. 设置系统时区 - 设置为Asia/Shanghai
  5. 配置网络接口ETH-H1 - 配置ethernet1
  6. 配置网络接口ETH-H0 - 配置ethernet0含ethtool参数
  7. SSH连接测试 - 测试SSH远程连接
  8. 文件传输测试 - 测试SFTP文件传输
  9. 网络连通性测试 - ping网关测试
  10. 系统时间同步 - 同步主机时间到设备
  11. 设置最终强密码 - 生成并设置高强度随机密码
  12. 生成设备标识文件 - 创建/etc/device_identity

打包为可执行文件

使用PyInstaller打包

pyinstaller --onefile --windowed --name "采集箱出厂测试工具" src/main.py

或使用.spec配置文件进行高级打包。

开发说明

代码规范

  • 遵循PEP 8编码规范
  • 使用类型注解
  • 编写完整的文档字符串

测试

# 运行单元测试
python -m pytest tests/

日志

日志文件保存在 logs/ 目录,按日期自动分割。

安全说明

  1. 密码加密: 所有密码使用bcrypt哈希存储设备密码使用Fernet对称加密
  2. 密钥保护: 主密钥文件设置600权限仅所有者可读写
  3. 审计日志: 所有操作记录完整日志,便于追溯
  4. 会话管理: 支持自动锁定,防止未授权访问

故障排除

串口无法连接

  • 检查设备驱动是否正确安装
  • 确认串口未被其他程序占用
  • 尝试更换USB端口

SSH连接失败

  • 确认设备IP地址正确
  • 检查网络连通性
  • 验证用户名密码

数据库错误

  • 检查data目录写入权限
  • 删除损坏的数据库文件重新初始化

版本历史

v1.0.0 (2024-01)

  • 初始版本发布
  • 支持完整的12步测试流程
  • 用户管理和审计日志
  • 测试报告生成

许可证

MIT License

联系方式

如有问题或建议,请联系开发团队。