STR_Reports.exe — 结构测试报告自动生成工具 操作手册
1. 概述
STR_Reports.exe 是一款基于 tkinter 图形界面的结构/应力测试报告自动生成工具,用于将测试照片、波形图、配置表和 Excel 测试数据自动填入 Word 模板,生成格式统一的测试报告(.docx 格式)。
支持的客户(8家):
| 序号 | 客户代码 | 客户名称 |
|---|---|---|
| 1 | Ali | 阿里 |
| 2 | Baidu | 百度 |
| 3 | Bytedance | 字节跳动 |
| 4 | HP | 惠普 |
| 5 | IPT | 英业达 |
| 6 | JD | 京东 |
| 7 | Kwai | 快手 |
| 8 | Tencent | 腾讯 |
2. 系统要求
- 操作系统: Windows(工具依赖网络路径
\\10.99.184.127\structure\) - 网络环境: 需要访问公司内网文件服务器
10.99.184.127(获取模板文件) - 可选依赖: Python 环境(仅开发/调试时需要,exe 独立运行)
- Python 库(仅脚本运行需要):
python-docx— Word 文档读写pandas— Excel 数据读取Pillow (PIL)— BMP 转 PNG 格式转换tkinter— GUI 界面(Python 自带)
3. 下载路径📁 本地下载
提示:点击按钮将打开网络文件夹,点击即可下载
| 文件 | 版本 | 格式 |
|---|---|---|
Auto-Report v1.0.zip | v1.0 | ZIP |
4. 目录结构
Auto-Report/
├── STR_Reports.exe # 主程序(编译后的独立可执行文件)
├── README-STR_REPORT.md # 本操作手册
├── python/
│ └── STR-REPORT.py # 源代码
├── Templates/ # 模板文件目录(本地/网络均可)
│ ├── Ali/
│ │ └── Date_Project Name_Stage/
│ │ ├── _Operating Non-Packaged Rotational Vibration_Rev01.docx
│ │ ├── _Operating Non-Packaged Vibration_Rev01.docx
│ │ └── ...(更多模板文件)
│ ├── Baidu/
│ ├── Bytedance/
│ ├── HP/
│ ├── IPT/
│ ├── JD/
│ ├── Kwai/
│ └── Tencent/
├── Custom/ # 各客户测试数据目录
│ ├── Ali/
│ │ └── data/
│ │ ├── rv/report/ # RV 测试数据和图片
│ │ ├── op vib/report/ # OP Vibration 测试数据
│ │ └── ...(更多测试类型)
│ ├── Baidu/
│ ├── Bytedance/
│ ├── HP/
│ ├── IPT/
│ ├── JD/
│ ├── Kwai/
│ └── Tencent/
├── 盘序标注图片/ # 硬盘顺序标注参考图
│ ├── 4HDD_DL325.png
│ ├── 8HDD_DL325.png
│ ├── 12HDD_DL325.png
│ └── ...(更多盘序图)
├── Structural Analysis Engineer.txt # 结构分析工程师配置
└── Structural Testing Engineer.txt # 结构测试工程师配置
4.1 工作目录结构
用户选择的 Working Directory 下需要有以下结构:
工作目录(用户指定)/
├── data/
│ ├── rv/
│ │ └── report/ # RV 测试:图片 + Excel数据
│ │ ├── 0.png # 配置表PPT导出图片
│ │ ├── 1.jpg # 整机俯视图
│ │ ├── 2.jpg # 风扇特写
│ │ ├── 3.jpg # 硬盘顺序图
│ │ ├── 4.jpg # 测试硬盘特写
│ │ ├── 5.jpg # RV整体布置图
│ │ └── *.xlsx # RV测试Excel数据
│ ├── op vib/
│ │ └── report/ # OP Vibration 测试
│ │ ├── 0.png, 1.jpg, 2.jpg, 3.jpg, 4.jpg, 5.jpg, 6.jpg
│ │ ├── x.jpg, y.jpg, z.jpg # 振动布置图
│ │ ├── x.bmp, y.bmp, z.bmp # 振动波形图
│ │ └── *.xlsx/.xls # 测试数据
│ └── ...(其他测试类型类似)
└── dict # 自动保存的项目参数文件
5. 支持的测试类型(按客户)
5.1 Ali(阿里)
| 编号 | 测试名称 | 说明 |
|---|---|---|
| 1 | RV | Operating Rotational Vibration(旋转振动) |
| 2 | op vib | Operating Vibration(工作振动) |
| 3 | op vib-no hdd | Operating Vibration without HDD(工作振动-无硬盘) |
| 4 | op shock | Operating Half-Sine Shock(工作半正弦冲击) |
| 5 | non-op vib | Non-Operating Vibration(非工作振动) |
| 6 | non-op sw shock | Non-Operating Square Wave Shock(非工作方波冲击) |
| 7 | sine sweep | Sine Sweep Vibration(正弦扫频振动) |
| 8 | handling shock | Handling Shock(搬运冲击) |
| 9 | non-op vib rack | Rack Level Non-Operating Vibration(机架级非工作振动) |
| 10 | non-op hs shock rack | Rack Level Non-Operating Half Sine Shock(机架级非工作半正弦冲击) |
| 11 | handling shock-25KG | Handling Shock 25KG 版本 |
5.2 Baidu(百度)
| 编号 | 测试名称 | 说明 |
|---|---|---|
| 1 | RV | 旋转振动 |
| 2 | op vib | 工作振动 |
| 3 | op vib-no hdd | 工作振动-无硬盘 |
| 4 | op shock | 工作半正弦冲击 |
| 5 | non-op vib | 非工作振动 |
| 6 | non-op sw shock | 非工作方波冲击 |
| 7 | 140G shock | 140G 半正弦冲击(百度特有) |
| 8 | non-op vib rack | 机架级非工作振动 |
| 9 | non-op hs shock rack | 机架级非工作半正弦冲击 |
5.3 Bytedance(字节跳动)
| 编号 | 测试名称 | 说明 |
|---|---|---|
| 1 | RV | 旋转振动 |
| 2 | op vib | 工作振动 |
| 3 | op shock | 工作半正弦冲击 |
| 4 | non-op vib | 非工作振动 |
| 5 | non-op sw shock | 非工作方波冲击 |
| 6 | non-op sine sweep | 非工作正弦扫频振动 |
5.4 HP(惠普)
| 编号 | 测试名称 | 说明 |
|---|---|---|
| 1 | bosco | Internally Generated Vibration(内部激励振动) |
| 2 | op vib | Operating Vibration(工作振动) |
| 3 | op shock | Operating Half-Sine Shock(工作半正弦冲击) |
| 4 | handling shock | Handling Shock(搬运冲击) |
| 5 | non-op vib | Non-Operating Vibration(非工作振动) |
| 6 | SW shock | Square Wave Shock(方波冲击) |
| 7 | SE shock | SE Square Wave Shock |
| 8 | smart | Smart Carrier Interconnect Integrity Testing |
5.5 IPT(英业达)
| 编号 | 测试名称 | 说明 |
|---|---|---|
| 1 | RV | 旋转振动 |
| 2 | op vib | 工作振动 |
| 3 | op vib-no hdd | 工作振动-无硬盘 |
| 4 | op shock | 工作半正弦冲击 |
| 5 | non-op vib | 非工作振动 |
| 6 | non-op sw shock | 非工作方波冲击 |
| 7 | handling shock | 搬运冲击 |
| 8 | non-op vib rack | 机架级非工作振动 |
| 9 | non-op shock rack | 机架级非工作冲击 |
| 10 | non-op vib board | 板级非工作振动 |
| 11 | non-op sw shock board | 板级非工作方波冲击 |
5.6 JD(京东)
| 编号 | 测试名称 | 说明 |
|---|---|---|
| 1 | RV | 旋转振动 |
| 2 | op vib | 工作振动 |
| 3 | op vib-no hdd | 工作振动-无硬盘 |
| 4 | op shock | 工作半正弦冲击 |
| 5 | non-op vib | 非工作振动 |
| 6 | non-op sw shock | 非工作方波冲击 |
5.7 Kwai(快手)
| 编号 | 测试名称 | 说明 |
|---|---|---|
| 1 | RV | 旋转振动 |
| 2 | op vib | 工作振动 |
| 3 | op vib-no hdd | 工作振动-无硬盘 |
| 4 | op shock | 工作半正弦冲击 |
| 5 | non-op vib | 非工作振动 |
| 6 | non-op sw shock | 非工作方波冲击 |
| 7 | handling shock | 搬运冲击 |
| 8 | non-op sine sweep | 非工作正弦扫频振动 |
5.8 Tencent(腾讯)
| 编号 | 测试名称 | 说明 |
|---|---|---|
| 1 | RV | 旋转振动 |
| 2 | op vib | 工作振动 |
| 3 | op vib-no hdd | 工作振动-无硬盘 |
| 4 | op shock | 工作半正弦冲击 |
| 5 | non-op vib | 非工作振动 |
| 6 | handling shock | 搬运冲击 |
6. 界面说明
打开程序后,主界面从上到下分为以下几个区域:
6.1 Customer(客户选择区)
| 控件 | 说明 |
|---|---|
| Customer 下拉框 | 选择目标客户,共 8 个选项。切换客户后自动更新测试类型、阶段、硬盘配置等下联菜单 |
| Working Dir 输入框 + Browse 按钮 | 选择工作目录。通常是测试数据存放的根目录(即包含 data/ 子目录的文件夹) |
6.2 Test Info(测试信息区)
| 控件 | 说明 |
|---|---|
| Test 下拉框 | 选择测试类型,选项随客户自动变化(格式:编号: 测试名称) |
| Result 单选按钮 | 选择测试结果:Pass(绿色 V)或 Fail(红色 V)。该结果会标记在报告首页 |
| Data Path 输入框 + Browse 按钮 | 测试数据的存放路径。选择测试类型后自动填充,也可手动修改 |
| Excel 输入框 + Browse 按钮 | Excel 数据文件路径(仅 RV 和 OP Vibration 测试显示此栏)。自动检测 Data Path 下的 Excel 文件,也可手动选择 |
6.3 Project Info(项目信息区)
| 控件 | 说明 |
|---|---|
| Test Date | 测试日期,默认当天日期(格式 YYYYMMDD) |
| Project | 项目名称(自定义输入) |
| Stage 下拉框 | 项目阶段,选项随客户变化(如 EVT/DVT/PVT/RTM/SE/DP/VP/DSPB/DMVP 等) |
| Analysis Eng 下拉框 | 结构分析工程师,从 Structural Analysis Engineer.txt 读取 |
| Testing Eng 下拉框 | 测试工程师,从 Structural Testing Engineer.txt 读取 |
| Key Parts Config 下拉框 | 硬盘/关键部件配置(如 12LFF、24SFF、8LFF 等) |
6.4 HP 客户专属字段
选择 HP 客户时,额外显示以下字段:
| 控件 | 说明 |
|---|---|
| 2nd Testing Eng | 第二测试工程师(HP 模板需要) |
| Product Name | HP 产品代号(如 Apennine、Tenayae、Shasta Lake 等) |
6.5 按钮区
| 按钮 | 说明 |
|---|---|
| Generate Report | 开始生成报告(在后台线程运行,不会卡住界面) |
| Clear Log | 清空日志区域 |
6.6 Log(日志区)
用于显示操作步骤、警告信息和错误提示。关键输出包括:
- 当前客户和测试类型
- 模板路径和数据路径
- 缺失的图片/数据文件警告
- 最终报告的保存路径
6.7 状态栏
底部状态栏显示当前状态:Ready、Generating report...、保存成功/失败信息。
7. 操作步骤
7.1 生成报告完整流程
第1步: 选择客户 → 从 Customer 下拉框选择目标客户
↓
第2步: 选择工作目录 → 点击 Browse 指定包含 data/ 子目录的文件夹
↓
第3步: 选择测试类型 → 从 Test 下拉框选择测试项目
↓ (程序自动填充 Data Path,RV/OP Vibration 还自动检测 Excel 文件)
第4步: 选择测试结果 → 勾选 Pass 或 Fail
↓
第5步: 填写项目信息 → 输入 Test Date、Project,选择 Stage、HDD 配置、工程师
↓ (HP 客户还需填写 2nd Testing Eng 和 Product Name)
第6步: 点击 Generate Report → 程序在后台生成报告
↓
第7步: 检查日志 → 确认是否有缺失图片/文件警告
↓
第8步: 取出报告 → 报告保存在工作目录下,文件名为:
YYYYMMDD_项目名_硬盘配置_阶段_模板名.docx
7.2 常规客户报告命名格式
<TestDate>_<Project>_<HDDConfig>_<Stage>_<TemplateName>.docx
示例: 20260528_K800_12LFF_DVT__Operating Non-Packaged Rotational Vibration_Rev01.docx
7.3 HP 客户报告命名格式
<CurrentDate>_<Project>_<HDDConfig>_<Stage>_<TemplateName>.docx
示例: 20260528_Rocketman_8LFF_DVP__Operating Non-Packaged Vibration_01.docx
8. 数据准备要求
8.1 图片文件要求
所有测试类型的 data/<测试类型>/report/ 目录下需要准备以下图片:
通用要求(大多数测试类型):
| 文件名 | 说明 |
|---|---|
0.png | 配置表 PPT 导出的图片 |
1.jpg | 整机无上盖俯视视图 |
x.jpg, y.jpg, z.jpg | 三个方向的布置图照片 |
x.bmp, y.bmp, z.bmp | 三个方向的波形图截图 |
图片格式: 支持 .jpg、.JPG、.png、.bmp。程序会自动将 .bmp 转换为 .png 以兼容 Word 文档。
8.2 Excel 数据文件
需要 Excel 数据的测试:
- RV(旋转振动): 所有客户
- OP Vibration(工作振动): 所有客户
- HP OP Vibration: 需要包含特定 sheet 的 Excel 文件
程序会自动在 Data Path 目录下搜索 .xlsx 或 .xls 文件(排除 ~$ 开头的临时文件)。如果找不到,会弹出文件选择对话框手动定位。
8.3 模板文件
模板文件为 Word .docx 格式,取自已配置的位置:
- 优先 使用本地
Templates/<Customer>/目录 - 备用 使用网络路径
\\10.99.184.127\structure\Test Report\Template\<Customer>\
8.4 配置文件
| 文件名 | 内容 | 用途 |
|---|---|---|
Structural Analysis Engineer.txt | Python dict 格式,工程师编号到姓名的映射 | 填充 Analysis Eng 下拉框 |
Structural Testing Engineer.txt | Python dict 格式,工程师编号到姓名的映射 | 填充 Testing Eng 下拉框 |
两个文件会先在程序所在目录查找,找不到则在 dict_lib 指定的网络路径查找。有内置默认值作为兜底。
9. 缺失文件处理
当程序在 Data Path 下找不到需要的图片或数据文件时:
- 日志警告: 在日志区显示
*** 缺少图片/image Missing: <文件名> (<文件说明>) - 手动定位: 弹出文件选择对话框,用户可手动导航到文件所在位置
- 跳过: 如果用户取消选择,该图片将被跳过,记录到日志末尾的跳过列表
- 继续生成: 缺失图片不影响报告整体生成,最终报告仅缺少该图片
10. 常见问题排查
10.1 提示 "Template not found"
原因: 模板文件在本地路径和网络路径都不存在。
解决:
- 确认本地
Templates/<Customer>/目录下有对应的模板文件 - 确认能访问网络路径
\\10.99.184.127\structure\Test Report\Template\ - 检查模板文件名是否与代码中
tsl定义一致
10.2 提示 "Missing Excel data"
原因: Data Path 下找不到 Excel 数据文件。
解决:
- 确认
data/<测试类型>/report/目录下存在.xlsx或.xls文件 - 手动点击 Excel 行的 Browse 按钮选择文件
- 检查文件名是否以
~$开头(Word/Excel 临时文件会被自动忽略)
10.3 图片未出现在报告中
原因: 图片文件名与程序期望的不一致(大小写敏感或命名不匹配)。
解决:
- 查看日志中的 Missing 警告,确认缺少的文件名
- 将图片重命名为程序期望的文件名(参考第 7 节)
- 注意图片格式要求(如某些客户要求
.JPG大写,另一些要求.jpg小写)
10.4 生成的 docx 文件无法打开
原因: 模板文件或图片文件损坏。
解决:
- 使用 Word 的"打开并修复"功能
- 检查模板文件是否能正常打开
- 检查 BMP 图片是否过大导致转换失败
10.5 HP 客户报告布局异常
原因: HP 模板结构与标准客户不同。
解决:
- 确保选择了正确的 HP 测试类型
- 对于 SW shock 测试,确认存在
30G/、35G/、40G/、45G/、50G/子目录 - 对于 SE shock 测试,确认存在
40G/子目录
10.6 网络路径无法访问
原因: 无法连接 \\10.99.184.127。
解决:
- 确保在公司内网环境
- 检查 VPN 连接状态
- 将所需模板手动复制到本地
Templates/目录下使用
11. 工程师配置文件格式
两个工程师配置文件使用 Python 字典格式:
# Structural Analysis Engineer.txt(结构分析工程师)
{1: 'Xing-jun Lu', 2: 'Qiang-qiang Tao', 3: 'Davis Cui', ...}
# Structural Testing Engineer.txt(结构测试工程师)
{1: 'Gang Zeng', 2: 'Jun-wei Sheng', 3: 'Rong-qiang Wu', ...}
如需添加或修改工程师,直接编辑对应 .txt 文件即可,程序启动时会自动读取。
12. 技术说明
12.1 报告生成流程
1. 加载模板文件 (.docx)
2. 创建样式(Pass=绿色加粗, Fail=红色加粗, 数据填充=蓝色, 辅助文本=黑色)
3. 在模板封面标记 Pass/Fail
4. 填充项目参数(项目名、阶段、工程师、日期等)
5. 将模板中 "DVT" 文本替换为实际 Stage
6. 插入配置表图片(0.png)
7. 插入测试图片(布置图、波形图等)
8. 如有 Excel 数据,读取并填充数据表格
9. 保存为新的 Word 文档
12.2 Pass/Fail 判定
程序本身不判断测试是否通过。Pass/Fail 由用户手动选择:
- Pass: 报告封面表格第 1 列显示绿色
V - Fail: 报告封面表格第 3 列显示红色
V