1. 课程导入与TestStand安全模型概览
在自动化测试系统中,TestStand 往往承担着测试序列的调度、执行与结果记录职责。一旦多个工程师、不同工位、不同产线共用同一套 TestStand 环境,就会立刻遇到两个现实问题:谁能改、谁能跑、谁只能看,以及同一份序列在不同站点上为什么行为不一致。前者属于用户权限管理,后者属于站点配置管理。本课程围绕这两条主线展开,帮助你把 TestStand 从"能跑起来"推进到"可控、可追溯、可复制"。
学习目标
完成本课程后,你应当能够:
- 说清 TestStand 安全模型的三个核心组成——用户、权限(Privilege)、用户组(User Group),以及它们与序列文件、工作空间之间的关系;
- 独立完成用户与用户组的创建、权限分配,并理解权限检查发生在哪些操作节点上;
- 理解站点配置(Station Configuration)的作用范围,掌握 StationGlobal、Station Options、搜索路径等关键配置项的用途;
- 能够判断一个"权限不足"或"站点行为不一致"的问题,应该从用户权限侧还是站点配置侧排查;
- 形成一套可复用的权限与站点配置交付清单,用于新工位部署或环境迁移。
为什么需要安全模型:一个典型场景
假设某产线有三类角色:测试开发工程师负责编写和调试序列;产线操作员负责调用序列执行产品测试;质量工程师只查看测试报告与历史记录。如果所有人共用同一个 Windows 账户登录 TestStand,那么操作员完全可能误改序列中的判定阈值,导致不良品被判为合格,而系统没有任何记录能说明是谁改的。
TestStand 的安全模型正是为解决这类问题而设计。它不依赖 Windows 账户本身做全部控制,而是在 TestStand 内部维护一套用户—用户组—权限的映射,并在执行敏感操作前做权限校验。默认情况下,TestStand 提供 Administrator、Developer、Operator、Maintainer 等内置用户组,每个组预置了不同的权限集合。例如 Operator 组通常只允许执行序列和查看结果,而 Developer 组可以编辑序列文件、修改步骤属性。
TestStand 安全模型的核心组成
理解安全模型,关键是抓住四个对象及其关系:
- 用户(User):登录 TestStand 的身份标识,可以带密码,也可以与 Windows 账户关联实现自动登录。
- 用户组(User Group):权限的载体。权限不直接授予用户,而是授予用户组,用户通过加入组获得权限。一个用户可以属于多个组,最终权限是各组的并集。
- 权限(Privilege):对具体操作的许可,例如"编辑序列文件""修改 StationGlobal""配置用户管理""执行序列"等。权限是细粒度的,可以按需组合。
- 受保护对象:序列文件、工作空间、StationGlobal、TestStand 配置本身。不同对象受不同权限约束。
需要特别注意的是权限的并集规则:如果用户同时属于 Operator 和 Developer,那么他拥有两组权限的合集,而不是取交集。这意味着给用户加组时要谨慎,避免无意中放大权限。
站点配置管理的作用范围
如果说用户权限解决的是"谁能做什么",站点配置解决的就是"这台机器上 TestStand 怎么运行"。站点配置是机器级的,不随序列文件走。常见的站点配置项包括:
- StationGlobal:站点级全局变量,常用于存放本工位的设备地址、工位编号、校准系数等。序列通过 StationGlobal 读取本机参数,从而实现"同一序列、不同工位、不同参数"。
- Station Options:控制 TestStand 引擎行为,例如是否允许在 Operator 界面下调试、断点行为、结果记录路径等。
- 搜索路径(Search Paths):决定 TestStand 到哪些目录查找序列文件、代码模块、配置文件。搜索路径配置错误是"序列在本机找不到文件"的最常见原因。
- 数据库与报告配置:结果写入哪个数据库、报告模板放在哪里,通常也按站点配置。
站点配置与用户权限存在交叉:修改 StationGlobal 或 Station Options 通常需要较高权限(如 Developer 或 Maintainer),而 Operator 只能读取。因此在部署新工位时,正确的顺序是先完成站点配置,再收紧用户权限,否则可能出现配置还没做完、权限已经锁死,导致无法继续配置的尴尬局面。
安全模型整体框架
下图把用户权限与站点配置两条主线放在同一视图中,展示从登录到执行序列的完整链路,以及权限校验和站点配置各自介入的位置。
典型应用场景
安全模型与站点配置的组合,在以下几类场景中体现得最明显:
- 多工位部署:同一份序列文件分发到 10 个工位,每个工位通过 StationGlobal 读取自己的设备地址和工位号,序列逻辑完全一致,只有参数不同。此时站点配置是"参数注入点",用户权限保证操作员不能改这些参数。
- 开发与生产隔离:开发机上 Developer 权限开放,方便调试;生产机上只保留 Operator 权限,序列文件设为只读。同一套序列,两种权限策略。
- 审计与追溯:通过用户登录记录和结果记录中的操作员信息,可以追溯"这批产品是谁在哪个工位、用哪个版本的序列测的"。
- 环境迁移:把一台机器的 TestStand 环境复制到新机器时,需要同时迁移用户/组定义和站点配置,缺一不可,否则会出现"权限对了但找不到文件"或"文件找得到但参数不对"。
一个可参考的初始配置示例
下面给出一份新工位部署时的初始配置参考,字段和取值属于示例,实际使用时需按现场情况调整:
| 配置项 | 示例值 | 说明 |
|---|---|---|
| StationGlobal.StationID | "ST-03" | 工位编号,序列中用于标识数据来源 |
| StationGlobal.DeviceAddress | "TCPIP::192.168.1.103::INSTR" | 本工位仪器地址 |
| StationGlobal.CalibrationFactor | 1.0023 | 本工位校准系数,示例假设值 |
| Station Options 调试开关 | Operator 界面下禁止调试 | 防止操作员误入调试模式 |
| 搜索路径 | D:\TestStand\Sequences; D:\TestStand\Modules | 序列与代码模块目录 |
| Operator 组权限 | 执行序列、查看结果 | 不含编辑序列、修改站点配置 |
| Developer 组权限 | 编辑序列、修改 StationGlobal、调试 | 不含用户管理 |
| Administrator 组权限 | 全部权限 | 含用户与权限管理 |
本课程的组织方式
后续内容将沿着"用户权限"和"站点配置"两条主线交替推进:先讲清用户、组、权限的创建与分配,再讲 StationGlobal、Station Options、搜索路径的具体配置方法;随后进入两者交叉的场景,例如如何用权限保护站点配置、如何在多工位间同步配置;最后通过排障与复盘,把前面零散的知识点串成一套可执行的部署与维护流程。你在学习过程中,可以始终用上面那张框架图作为定位参照:遇到问题时先判断它属于左侧的权限链路,还是右侧的站点配置链路,再决定排查方向。