【汽车研发测试工程师|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路谱文件批量解析工具】,需要的可以关注收藏!

相关推荐
COOLMO研究AI3 小时前
Python 如何实现 AI API 的提示词(Prompt)版本管理与热更新
人工智能·python·prompt
老郑聊AI业财智造3 小时前
Transformer 技术架构与源码分析
人工智能·python·深度学习·语言模型·架构·transformer·软件工程
程序员三藏3 小时前
自动化测试用例编写详解
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
徽京人4 小时前
VS Code 接入Esp 32步骤
vscode·单片机·嵌入式硬件
招财小梗4 小时前
AI矩阵获客,品牌连锁落地方案揭秘
大数据·人工智能·矩阵
230万光年的思念4 小时前
分子动力学模拟参考文献
python
用户3610588626124 小时前
SparkSQL 之 Hive On Spark 原理分析
大数据·spark
白色机械键盘4 小时前
领域大模型微调数据集构建实战
大数据·人工智能
HongXu_CaiYi5 小时前
0103-python相关-函数、文件
python
QH139292318805 小时前
Keysight N5183B N5183B 微波模拟信号发生器
网络·单片机·嵌入式硬件·集成测试·信息与通信