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 的权限校验发生在操作发起时,而不是登录时。也就是说,用户登录后权限变更(例如被移出某个组)会在下一次敏感操作时生效,无需重新登录。这一点在排查"权限改了但没生效"类问题时很关键。

站点配置管理的作用范围

如果说用户权限解决的是"谁能做什么",站点配置解决的就是"这台机器上 TestStand 怎么运行"。站点配置是机器级的,不随序列文件走。常见的站点配置项包括:

  • StationGlobal:站点级全局变量,常用于存放本工位的设备地址、工位编号、校准系数等。序列通过 StationGlobal 读取本机参数,从而实现"同一序列、不同工位、不同参数"。
  • Station Options:控制 TestStand 引擎行为,例如是否允许在 Operator 界面下调试、断点行为、结果记录路径等。
  • 搜索路径(Search Paths):决定 TestStand 到哪些目录查找序列文件、代码模块、配置文件。搜索路径配置错误是"序列在本机找不到文件"的最常见原因。
  • 数据库与报告配置:结果写入哪个数据库、报告模板放在哪里,通常也按站点配置。

站点配置与用户权限存在交叉:修改 StationGlobal 或 Station Options 通常需要较高权限(如 Developer 或 Maintainer),而 Operator 只能读取。因此在部署新工位时,正确的顺序是先完成站点配置,再收紧用户权限,否则可能出现配置还没做完、权限已经锁死,导致无法继续配置的尴尬局面。

安全模型整体框架

下图把用户权限与站点配置两条主线放在同一视图中,展示从登录到执行序列的完整链路,以及权限校验和站点配置各自介入的位置。

TestStand 安全模型与站点配置整体框架 用户权限主线 用户登录 User Login TestStand 账户 / Windows 账户关联 用户组 User Group Administrator / Developer / Operator / Maintainer 权限 Privilege(并集) 编辑序列 / 执行序列 / 配置用户 / 修改站点配置 受保护对象 序列文件 / 工作空间 / StationGlobal / 配置 权限校验时机 操作发起时校验,非登录时 站点配置主线(机器级) StationGlobal 工位编号 / 设备地址 / 校准系数 Station Options 调试开关 / 断点行为 / 结果记录路径 搜索路径 Search Paths 序列文件 / 代码模块 / 配置文件目录 数据库与报告配置 结果库连接 / 报告模板位置 部署顺序 先完成站点配置,再收紧用户权限 交叉约束

典型应用场景

安全模型与站点配置的组合,在以下几类场景中体现得最明显:

  • 多工位部署:同一份序列文件分发到 10 个工位,每个工位通过 StationGlobal 读取自己的设备地址和工位号,序列逻辑完全一致,只有参数不同。此时站点配置是"参数注入点",用户权限保证操作员不能改这些参数。
  • 开发与生产隔离:开发机上 Developer 权限开放,方便调试;生产机上只保留 Operator 权限,序列文件设为只读。同一套序列,两种权限策略。
  • 审计与追溯:通过用户登录记录和结果记录中的操作员信息,可以追溯"这批产品是谁在哪个工位、用哪个版本的序列测的"。
  • 环境迁移:把一台机器的 TestStand 环境复制到新机器时,需要同时迁移用户/组定义和站点配置,缺一不可,否则会出现"权限对了但找不到文件"或"文件找得到但参数不对"。

一个可参考的初始配置示例

下面给出一份新工位部署时的初始配置参考,字段和取值属于示例,实际使用时需按现场情况调整:

配置项示例值说明
StationGlobal.StationID"ST-03"工位编号,序列中用于标识数据来源
StationGlobal.DeviceAddress"TCPIP::192.168.1.103::INSTR"本工位仪器地址
StationGlobal.CalibrationFactor1.0023本工位校准系数,示例假设值
Station Options 调试开关Operator 界面下禁止调试防止操作员误入调试模式
搜索路径D:\TestStand\Sequences; D:\TestStand\Modules序列与代码模块目录
Operator 组权限执行序列、查看结果不含编辑序列、修改站点配置
Developer 组权限编辑序列、修改 StationGlobal、调试不含用户管理
Administrator 组权限全部权限含用户与权限管理
部署时容易踩的坑:先把 Operator 权限收紧、再去做站点配置,结果发现自己也被锁在外面,无法修改 StationGlobal。正确做法是配置阶段用 Administrator 登录,站点配置全部完成并验证后,再切换到 Operator 账户做一次实际执行验证。

本课程的组织方式

后续内容将沿着"用户权限"和"站点配置"两条主线交替推进:先讲清用户、组、权限的创建与分配,再讲 StationGlobal、Station Options、搜索路径的具体配置方法;随后进入两者交叉的场景,例如如何用权限保护站点配置、如何在多工位间同步配置;最后通过排障与复盘,把前面零散的知识点串成一套可执行的部署与维护流程。你在学习过程中,可以始终用上面那张框架图作为定位参照:遇到问题时先判断它属于左侧的权限链路,还是右侧的站点配置链路,再决定排查方向。