当前位置:首页>python>VSAR Python 小程序 | 自动化测试脚本开发全攻略

VSAR Python 小程序 | 自动化测试脚本开发全攻略

  • 2026-10-11 07:13:32
VSAR Python 小程序 | 自动化测试脚本开发全攻略

摘要

相较于 C 语言小程序,VSAR Python 脚本无需编译、迭代更高效。 本文结合官方使用规范,一步步演示小程序新建、代码编写、运行调试全流程,讲解核心函数、CAN 报文格式与日志使用技巧,同时汇总实操中各类报错、功能异常。

功能简介

Python 小程序是 VSAR 里的一种可编程自动化工具:在软件内直接编写 Python 脚本,保存到当前工程,一键运行后由软件在后台启动独立 Python 进程。脚本可控制测量启停、写日志、发送/等待 CAN 报文等,适合快速验证、批量发报文、简单联调。

软件自带 Python 3.13 运行环境,一般无需单独安装 Python。

与 C 语言小程序相比:不用编译,改完保存即可运行;语法更接近日常脚本;适合逻辑不复杂、迭代快的场景。

(图片一)

如何创建与打开

1、菜单进入:程序 → Python 小程序(或子菜单「添加 Python 小程序」)。

2、新建时可选择:

· 空模板:空白代码;

· 发送一帧 CAN 报文、千帧递增、千帧正弦等内置示例(便于照着改)。

3、每个小程序对应工程目录:

{工程}/PythonApplet/PApp_{编号}/PApp.py。

保存工程后,下次打开会自动恢复已创建的小程序窗口。

4、工具栏可导入/导出 .py 文件,或打开所在文件夹(用外部编辑器改完后,在 VSAR 中保存或重新加载)。

注意:删除小程序窗口前须先停止运行,否则会提示无法删除。

(图片二)

编辑界面操作说明

窗口大致分为:代码区、内部 API 树(通用 / 日志 / 测量 / CAN)、示例与说明、运行日志。

操作

快捷键 / 入口

说明

保存

Ctrl+S / 保存按钮

写入当前工程的 PApp.py;设置里可勾选「执行前自动保存」

静态检查

Ctrl+F9

内置 pylint 检查语法与严重错误,结果在下方日志区

运行

F9

先检查,通过后再启动;运行中代码区只读

停止

停止按钮

结束当前脚本进程

在左侧 API 树中点击函数名(如 can_send),右侧会显示说明和示例片段,可复制到代码区。运行时资源目录下还提供 VSAR_API.json(与树节点对应,供界面解析说明)。

(图片三)

脚本必须满足格式

软件只识别带固定入口的脚本:

1、必须有名为 __vsar_main 的函数(主逻辑写在这里)。

2、建议有 __vsar_exit(退出清理;没有也能运行,静态检查时会警告)。

典型结构:

import app

import channel

import can

from VSARDllApi import VSAR_Can

def __vsar_main():

   app.init()                    # 建议第一步:初始化

   channel.start_measurement()   # 启动测量(与界面「启动测量」一致)

   # 在此编写你的业务……

   channel.stop_measurement()    # 结束测量

def __vsar_exit():

   pass                          # 可选:释放、收尾

可使用 import VSAR 一次性引入 app、channel、can 等模块。运行时会自动将 {VSAR 运行目录}/PythonApplet 加入 Python 路径,无需手动配置。

常用 API(用户视角)

一、模块与函数

模块

方法

用途

app

init()

运行前初始化;发送 CAN 前建议调用

app

log(级别, "文字")

输出到 VSAR 日志窗口

channel

start_measurement()

启动测量

channel

stop_measurement()

停止测量

channel

is_measurement()

查询是否已在测量

can

can_send(报文 [, 回调])

发送一帧 CAN

can

wait_can_recv(报文, 超时毫秒 [, 回调])

在限定时间内等待接收

二、日志级别

在脚本中 import VSAR 后可使用:

常量

值

含义

LOG_LVL_DEBUG

1

调试

LOG_LVL_INFO

2

信息

LOG_LVL_SUCCESS

3

成功

LOG_LVL_WARNING

4

警告

LOG_LVL_ERROR

5

错误

示例:app.log(VSAR.LOG_LVL_INFO, "开始发送")

三、CAN 报文结构 VSAR_Can

常用字段(与总线配置一致方可生效):

字段

说明

canNo

CAN 通道号

Id

帧 ID

xtd

标准帧 / 扩展帧

dlc

DLC

byteDataLen

有效数据长度

FData

数据字节数组,最多 64 字节

发送示例:

from VSARDllApi import VSAR_Can

msg = VSAR_Can()

msg.canNo = 0

msg.Id = 0x100

msg.dlc = 8

msg.byteDataLen = 8

msg.FData[0] = 0x11

can.can_send(msg)

菜单中的「千帧递增」「千帧正弦」示例演示循环发报文,可直接运行后再修改 ID、周期与数据内容。

四、返回值

init、log、start_measurement、stop_measurement、can_send、wait_can_recv 等返回 ErrorCode:0 表示成功,非 0 表示失败或超时,可按需判断处理。

推荐使用流程

1、配置工程:设备、CAN 通道、波特率等与平时抓包/发送一致。

2、新建或打开小程序,从空模板或 CAN 示例开始编写。

3、在 __vsar_main 中建议顺序:

app.init() → channel.start_measurement() → 业务逻辑 → 

channel.stop_measurement()。

4、Ctrl+F9 静态检查,确认日志区无严重错误(E/F 类)。

5、F9 运行,观察状态栏与日志;可用 app.log 输出中间状态。

6、结束后点击停止,再修改代码;切换工程前建议停止所有正在运行的小程序。

工程目录说明

路径

说明

{工程}/PythonApplet/PApp_{窗口ID}/PApp.py

当前小程序源码

{工程}/PythonApplet/PythonAppletList.json

工程内已创建小程序的窗口 ID 列表

{VSAR 运行目录}/PythonApplet/

Python SDK(PythonAPI)、VSAR_API.json、示例脚本等

{VSAR 运行目录}/Python313/

内置 Python 与 pylint

{VSAR 运行目录}/ScriptProcess.exe

内置 Python 与 pylint

{VSAR 运行目录}/PythonAppletManager.dll

Python 与主进程通信的动态库(由 PythonAPI 加载)

示例脚本路径(相对 VSAR 运行目录):PythonApplet/example/(如空模板.py、发送一帧can报文示例.py 等)。

常见问题

现象

处理建议

提示找不到 __vsar_main

检查函数名拼写,且源文件中包含该名称

pylint 报 E/F 错误

修正语法或未定义变量后再运行

import 失败 / 无法连接

从 VSAR 安装目录启动,确认存在 Python313、PythonApplet、ScriptProcess.exe、PythonAppletManager.dll

发不出 CAN

确认已 start_measurement(),通道号与界面配置一致,硬件已连接

收不到报文

增大 wait_can_recv 超时;核对通道、ID 与总线实际报文

运行中无法保存或检查

先点击停止,属正常运行保护

删除窗口失败

须先停止小程序运行

开发与架构(简要)

本目录 Business/PythonApplet 为 VSAR 业务插件(界面、工程保存、运行调度);底层 SDK 位于 SDK/PythonAppletManager(管道协议、测量/CAN/日志与主进程对接)。

- 用户脚本由 ScriptProcess.exe 在子进程中执行。

- 主进程通过命名管道 \\.\pipe\runpy 与 PythonAppletManager.dll 交换 JSON 协议消息。

- Python 封装见:

PythonAPI/(app.py、channel.py、can.py、VSARI.py、VSARDllApi.py)。

更完整的协议与模块说明可参考源码注释及 SDK/PythonAppletManager 各 API 实现。

关注我们

第一时间获取工程实战教程、行业技术解读

欢迎后台留言咨询~

最新文章

随机文章