【6.26】芯片测试入门 从零搭自动化测试框架|PyVISA+OOP 保姆级教程
大家好我是謓泽。今天聊一个最有价值的交付物自动化测试框架雏形。别被 框架OOP 这些词吓到说白了就是用 Python 写个脚本让仪器自动测芯片、自动出报告把人工拷屏升级成自动化脚本。 知识点清单・逐点解答知识点 0先搞懂环境怎么搭需要的软件Python 3.x这个不用多说编程基础环境PyVISAPython 控制仪器的库相当于 电脑和仪器之间的翻译官安装命令一行搞定py -3 -m pip install pyvisa大白话PyVISA 就是个工具包装上之后你的 Python 就能跟示波器、频谱仪、电源这些仪器说话了发指令、读数据全都靠它。知识点 1自动化测试平台整体架构先上一张架构图用文字版给你画出来测试PC (Python PyVISA) ↓ 发指令/读数据 仪器矢网/频谱仪/电源 ↓ 测芯片 被测芯片 ↓ 返回数据 判断 PASS / FAIL ↓ 生成报表用人话讲一遍流程电脑上跑 Python 脚本→ 通过 PyVISA 库给仪器发命令仪器收到命令→ 自动设置参数、开始测量芯片测完把数据传回电脑→ Python 拿到数据Python 自动判断→ 数据在规格内就是 PASS超了就是 FAIL最后自动生成报表→ CSV 或者 PDF不用人工抄数一句话总结以前是人守着仪器按按钮、记数据、填表格现在是 Python 脚本自动干完这一整套人去摸鱼就行。知识点 2框架四大组件核心中的核心一个完整的自动化测试框架拆开来就是四大模块。记住这四个框架就搭起来了。① 仪器抽象层Instrument Abstraction干啥的把每种仪器都封装成一个类统一接口。四个统一方法connect()— 连接仪器configure()— 设置参数measure()— 开始测量、读数据disconnect()— 断开连接大白话翻译就像给所有仪器做了个 万能遥控器。不管是矢网还是电源你都只用按这四个按钮 —— 连、设、测、断。以后换仪器型号只改里面的代码外面的调用不用动。② 测试项TestItem干啥的每一个测试指标就是一个 TestItem。包含什么名称name比如 增益测试 噪声系数测试 仪器instrument用哪台仪器测参数params测试条件设成啥判定条件limits上限下限是多少超了就算 Failrun()方法执行测试的具体代码大白话就像一张 测试工单。上面写清楚了测什么、用啥测、设啥参数、合格标准是啥、怎么测。一张工单对应一个测试项。③ 测试序列TestSequence干啥的把一堆测试项按顺序串起来挨个执行收集结果。工作流程添加测试项 → 2. 按顺序执行 → 3. 收集所有结果大白话就是个 流水线工长。手里攥着一叠测试工单按顺序一张一张发出去测测完把结果都收回来。④ 报表Report干啥的统计所有测试结果画图导出成 CSV 或 PDF。输出内容统计总共测了多少项、Pass 几个、Fail 几个画图测试数据的曲线图导出CSV 表格 / PDF 报告大白话就是个 资料员。所有测试结果汇总过来整理成漂亮的表格和图直接发给老板就行。知识点 3你的优势 为什么这是入职第一个月的交付物现状芯片测试团队可能缺软件能力还在用 手工拷屏 的原始方式测芯片。你的价值来了之后帮他们从 手工拷屏 升级到 自动化脚本。这就是你入职前几周最能出成果的地方不用懂很深的芯片设计只要会 Python把测试流程自动化立刻就能帮团队省时间产出看得见。知识点 4AI 配合使用指南新手快速上手① 让 AI 帮你设计芯片自动化测试框架的 Python 代码骨架直接让 AI 生成代码模板包含仪器基类PyVISA 模拟模式不需要真仪器也能跑TestItem 类name /instrument/params /limits/run ()TestSequence 类添加测试项、按序执行、收集结果简单结果打印、详细注释② 基于这个框架添加一个 S21 测试 子模块具体要求模拟 10~20GHz 范围 10 个频点测试模拟 S21 结果③ 购买代码后让 AI 逐行通读、截图记录把 AI 生成的代码逐行看懂每一行干啥的都搞明白截图保存当笔记。✏️ 练习题・逐题拆解题目 1自动化测试框架四大组件分别是什么答案仪器抽象层、测试项TestItem、测试序列TestSequence、报表逐个再复习一遍组件干啥的比喻仪器抽象层封装仪器统一接口万能遥控器测试项 TestItem单个测试的定义和执行一张测试工单测试序列 TestSequence多个测试项按序执行流水线工长报表 Report统计结果、导出报告资料员题目 2为什么仪器基类用模拟模式而不是连真仪器提示开发阶段没仪器答案核心原因开发阶段没仪器可用你写代码的时候实验室仪器可能被别人占着或者根本还没买。用模拟模式电脑上直接就能开发调试不用等仪器。方便调试代码逻辑先把框架逻辑跑通 —— 测试项加对了吗判定条件对不对报表生成正常不这些都可以用模拟数据先测通。降低门槛新手友好不需要真仪器、不需要接线、不需要 GPIB / 网口配置装个 Python 就能跑学习成本极低。代码写完再接真仪器等框架逻辑都调通了最后把模拟模式换成真实仪器的 SCPI 指令就行框架代码不用大改。一句话总结先在电脑上把 骨架 搭好跑通等有仪器了再把 真血肉 接上去。开发效率高不依赖硬件。题目 3跑通今天写的框架代码截图保存这道是实操题给大家一个最简版框架代码参考复制到 Python 里直接能跑# 1. 仪器抽象层模拟模式 class MockInstrument: def __init__(self, name): self.name name def connect(self): print(f[连接] {self.name} 已连接模拟模式) def configure(self, **params): print(f[设置] {self.name} 参数{params}) def measure(self): # 模拟返回测量数据 import random return round(15 random.uniform(-2, 2), 2) # 模拟增益15dB左右 def disconnect(self): print(f[断开] {self.name} 已断开) # 2. 测试项 TestItem class TestItem: def __init__(self, name, instrument, params, limits): self.name name self.instrument instrument self.params params self.limits limits # (min, max) def run(self): self.instrument.connect() self.instrument.configure(**self.params) result self.instrument.measure() # 判断Pass/Fail min_val, max_val self.limits status PASS if min_val result max_val else FAIL self.instrument.disconnect() return {测试项: self.name, 结果: result, 状态: status} # 3. 测试序列 TestSequence class TestSequence: def __init__(self): self.test_items [] self.results [] def add_test(self, test_item): self.test_items.append(test_item) def run_all(self): print( * 40) print(开始执行测试序列...) print( * 40) for item in self.test_items: result item.run() self.results.append(result) print(f → {result[测试项]}: {result[结果]} [{result[状态]}]) print( * 40) print(测试完成) # 4. 报表简易版 def generate_report(results): print(\n * 40) print(测试报表) print( * 40) pass_count sum(1 for r in results if r[状态] PASS) print(f总计{len(results)} 项 | PASS: {pass_count} | FAIL: {len(results)-pass_count}) for r in results: print(f {r[测试项]}: {r[结果]} [{r[状态]}]) # 主程序跑起来 if __name__ __main__: # 创建一台模拟仪器 vna MockInstrument(模拟矢网) # 创建测试项 test1 TestItem(增益测试, vna, {freq: 10GHz}, (10, 20)) test2 TestItem(噪声系数测试, vna, {freq: 15GHz}, (0, 3)) # 创建测试序列并执行 seq TestSequence() seq.add_test(test1) seq.add_test(test2) seq.run_all() # 生成报表 generate_report(seq.results)把这段代码存成 test_framework.py命令行运行 python test_framework.py就能看到完整的自动化测试流程跑通了截图保存交差神器 最后划三个重点四大组件要记牢仪器抽象层、TestItem、TestSequence、报表模拟模式是新手友好器没真仪器也能开发框架先跑通逻辑再接硬件这是入职出成果的捷径把手工测试变自动化前几周就能拿出看得见的交付物