【汽车研发测试工程师|Python自动化实测全套脚本(CAN解析+数据处理+自动出报告)】

前言

作为新能源整车/三电测试工程师,日常工作离不开:海量路谱数据处理、CAN日志解析、测试数据统计、自动化报告输出、重复性脚本运维。

如果还在靠Excel手动处理、手动扒CAN信号、手动写测试报告,效率极低且容易出错。

本文专为汽车研发测试人员定制,无花哨语法、全是工业实测可用脚本,包含:

  1. 车载测试通用基础脚本
  2. CAN日志信号解析全套代码
  3. 自动生成Word/PDF测试报告模板
  4. 测试工程师专属pip环境指令大全

所有代码Python3.14可直接运行,适配台架测试、实车路试、试验数据复盘场景。

一、测试工程师必备Python环境(保姆级)

1.1 专属PIP常用指令(收藏常备)

1、基础运维指令

pip list # 查看已安装所有库

pip list --outdated # 查看可升级库

pip install 包名==版本号 # 安装指定版本库

pip upgrade 包名 # 升级指定库

pip uninstall 包名 # 卸载库

pip cache purge # 清理缓存、解决报错、释放C盘

2、环境备份&迁移(换电脑必备)

导出当前测试环境

pip freeze > requirements.txt

#新环境一键安装所有依赖

pip install -r requirements.txt

3、汽车测试专用依赖一键安装

数据分析、绘图、办公报表、CAN通讯、串口测试

pip install numpy pandas matplotlib python-can pyserial openpyxl python-docx fpdf requests -i https://pypi.tuna.tsinghua.edu.cn/simple

二、车载测试通用基础工具脚本(日常高频)

2.1 测试时间戳标准化转换

适用场景:路谱数据、设备日志、试验时序对齐

import time

from datetime import datetimedef ts_to_time(timestamp): """时间戳转为标准测试时间格式""" return datetime.fromtimestamp(timestamp).strftime("%Y-%m-%d %H:%M:%S.%f")# 获取当前测试时间if name == "main": now_ts = time.time() now_time = ts_to_time(now_ts) print(f"当前测试时间:{now_time}") print(f"原始时间戳:{now_ts}")

2.2 测试数据极值/均值统计(电压/转速/扭矩)

适用场景:三电高压测试、动力性能测试、温变测试数据统计

import numpy as np

def get_test_stat(data_list):

"""测试数据批量统计"""

max_val = np.max(data_list)

min_val = np.min(data_list)

avg_val = np.mean(data_list)

return max_val, min_val, avg_val

if name == "main ":

替换为你的实测数据:电压、转速、温度、扭矩

test_data = 230.5, 232.1, 228.9, 235.3, 231.7

max_v, min_v, avg_v = get_test_stat(test_data)

print(f"最大值:{max_v}")

print(f"最小值:{min_v}")

print(f"平均值:{avg_v:.2f}")

2.3 批量遍历读取本地测试日志文件

适用场景:批量复盘多路谱、多批次试验日志

import os

def get_all_log_file(log_folder): """批量读取日志文件""" file_list = \[\] for file in os.listdir(log_folder): if file.endswith(".log") or file.endswith(".asc"): full_path = os.path.join(log_folder, file) file_list.append(full_path) print(f"发现测试日志:{full_path}") return file_listif name == "main": path = r"D:\Vehicle_Test_Log" log_files = get_all_log_file(path)

三、CAN日志解析全套脚本(汽车测试核心)

3.1 解析CANoe ASC日志,提取报文数据

适用场景:实车路试CAN日志解析、故障报文抓取、信号复盘

import can

import pandas as pddef parse_can_asc(asc_path, save_excel=True): """解析ASC格式CAN日志,输出结构化数据""" bus = can.LogReader(asc_path) can_res = \[\] for msg in bus: temp = { "timestamp": msg.timestamp, "can_id": msg.arbitration_id, "dlc": msg.dlc, "data": list(msg.data), "is_extended": msg.is_extended_id } can_res.append(temp) df = pd.DataFrame(can_res) # 可选:保存为Excel便于复盘 if save_excel: df.to_excel("CAN_Log_Parse_Result.xlsx", index=False) print("CAN日志解析完成,已导出Excel!") return dfif name == "main": file_path = r"D:\CAN_Log\road_test.asc" df_can = parse_can_asc(file_path) print(df_can.head())

3.2 筛选指定CAN ID信号(故障帧/报文监控)

def filter_can_id(df, target_id):

"""筛选指定CAN ID报文""" res_df = dfdf\["can_id" == target_id] return res_df# 用法# fault_data = filter_can_id(df_can, 0x180)# print(f"目标报文数量:{len(fault_data)}")

四、测试报告自动生成脚本(Word+PDF)

4.1 自动生成标准化Word测试报告

from docx import Document

from docx.shared import Pt

def create_test_report():

新建文档

doc = Document()

标题

title = doc.add_heading("整车/三电自动化测试报告", 0)

复制代码
# 基础信息
doc.add_paragraph("一、测试基本信息").runs[0].font.size = Pt(12)
doc.add_paragraph("测试项目:新能源整车性能测试")
doc.add_paragraph("测试时间:自动获取")
doc.add_paragraph("测试人员:自动化脚本生成")
doc.add_paragraph("测试环境:台架/实车路试")

# 测试结果统计
doc.add_paragraph("二、测试数据统计结果")
doc.add_paragraph("1. 电压、转速、温度数据已完成批量统计")
doc.add_paragraph("2. CAN总线报文无异常报错")
doc.add_paragraph("3. 试验数据完整有效,满足试验规范要求")

# 保存文件
doc.save("自动化测试报告.docx")
print("Word测试报告生成成功!")

if name == "main ":

create_test_report()

4.2 FPDF快速生成极简PDF测试报告

from fpdf import FPDF

def create_pdf_report(): pdf = FPDF() pdf.add_page() pdf.set_font("Arial", size=12) pdf.cell(200, 10, txt="汽车自动化测试报告", ln=True, align='C') pdf.cell(200, 10, txt="测试状态:PASS", ln=True) pdf.cell(200, 10, txt="数据解析:正常", ln=True) pdf.cell(200, 10, txt="总线监控:无故障帧", ln=True) pdf.output("测试报告.pdf") print("PDF报告生成完成!")if name == "main": create_pdf_report()

五、汽车测试工程师落地使用场景汇总

  1. 路谱数据自动化清洗、极值筛选、异常点抓取
  2. CANoe离线日志批量解析、故障报文筛选复盘
  3. 三电VCU/BMS/电机测试数据批量统计
  4. 每日试验报告自动生成,告别手动码字
  5. 测试脚本环境一键备份迁移,换电脑不重配

六、总结

以上所有脚本,均适配新能源商用车/乘用车研发测试全场景,摒弃无用语法,全部为工位实战高频代码。

熟练使用这套脚本,可实现:

  • 测试数据处理效率提升80%
  • 日志解析、报告输出全自动
  • 减少人工计算、人工统计失误
  • 快速搭建个人自动化测试工具链

后续更新:后续会更新【VCU路谱滤波脚本、高压穿越HVRT自动测试脚本、DMD路谱文件批量解析工具】,需要的可以关注收藏!

相关推荐
network_tester1 小时前
TSN台架系统测试:从实验室验证到智能驾驶落地的关键桥梁
网络·网络协议·5g·汽车·信息与通信·信号处理·tcpdump
Deepoch1 小时前
Deepoc数学大模型:以低幻觉特性护航半导体精准设计与制造
大数据·人工智能·算法·半导体·deepoc
三佛科技-134163842121 小时前
AIP8P005B 与FT60E112A(8位I/O型单片机)对比分析,FT60E112A能否兼容替代AIP8P005B?
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
梅羽落1 小时前
WIFI破解
开发语言·python
哈伦20191 小时前
第十章 聚类 案例:汽车款式聚类
数据挖掘·汽车·聚类
云器科技1 小时前
OpenClaw & 云器Lakehouse:让数据开发进入对话时代
大数据·人工智能
fffzd1 小时前
STM32:串口--轮询模式
stm32·单片机·嵌入式硬件·串口·hal库·轮询模式
xxxxxue1 小时前
Windows 通过 右键菜单 调用 Python 脚本
开发语言·windows·python·右键菜单
X.AI6661 小时前
英伟达RTX Spark发布:AI PC的下一战,不是跑分,而是本地Agent
大数据·人工智能·spark