在团队把LDRA Testbed相关的静态分析或TBrun回归测试放到固定时段运行后,经常会遇到两类现象:一类是排程入口没有统一,导致每个人各跑一套口径;另一类是任务明明已配置,却没有按设定时间启动。要把事情讲清,需要先把可重复运行的执行入口固定下来,再把排程平台的触发条件、账号权限、时间同步和并发规则逐项核对,最后用日志与结果目录把每次运行留成可追溯证据。
一、testbed任务排程怎么设置
排程设置的关键不在于把时间填进去,而在于先把Testbed或TBrun的执行方式做成稳定的可重复入口,再交给操作系统或持续集成系统去按时间触发。这样做的好处是排程平台只负责启动,测试工具只负责执行,问题定位会更快。
1、先把回归执行入口固化为可重复运行的序列文件
在TBrun里把需要周期性运行的回归测试整理为序列并保存为TCF文件,后续可在界面或命令行重复运行,这类序列适合被排程系统定时触发。
2、把命令行执行包装成一个固定入口并统一工作目录
在执行机上建立一个专用目录,用于存放项目配置、TCF文件、运行日志与输出报告;把工作目录固定到该路径,避免相对路径导致找不到工程文件或把结果写到临时目录,后续也更容易做结果归档与差异对比。
3、在Windows任务计划程序里创建按时间触发的任务
打开【任务计划程序】后点击【创建任务】,在【触发器】里选择【按计划】并设置开始日期与时间,在【操作】里选择【启动程序】并填写你的命令行入口;在【操作】里把【起始于】填为上一步统一的工作目录,确保运行时能够正确解析相对路径与输出目录。
4、为排程任务补齐账号权限与并发控制
在【常规】中选择【不管用户是否登录都要运行】,并勾选【使用最高权限运行】以避免无界面会话权限不足;在【设置】里把【如果任务已在运行】设为不启动新实例或按你的团队规则改为排队,避免上一次回归未结束就叠加新一轮导致结果互相覆盖。
5、在Linux环境用cron服务做同等排程
使用crontab为执行账号新增定时条目,把命令行入口写成绝对路径,并把标准输出与错误输出重定向到固定日志文件;同时确认cron服务处于运行状态,避免任务写对了却没有调度进程去触发。
二、testbed任务排程不按时间跑怎么办
排程不按时间跑通常不是单一原因,常见的断点集中在时间与时区、触发条件被限制、账号权限与会话环境不完整、以及任务被并发规则拦住。排查时建议先看排程系统的证据,再回到Testbed侧验证执行入口本身是否可独立运行。
1、先核对执行机时间同步与时区设置是否一致
检查执行机系统时间、时区与网络时间同步服务,尤其是跨时区服务器或虚拟机迁移后,触发器时间可能按另一套时区解释,表现为延后或提前启动。
2、查看任务计划程序的【历史记录】与【上次运行结果】
在Windows任务计划程序里启用并查看【历史记录】,核对触发器是否被触发、任务是否启动、以及失败时的返回码;微软的排障文档建议从任务未按时启动、状态停留在Running、以及History与Last Run Result入手定位。
3、检查【条件】里是否设置了限制启动的门槛
重点核对是否勾选了仅在空闲时运行、仅在交流电源时运行、仅在特定网络可用时运行、以及计算机睡眠不唤醒等条件;这些条件会让任务被触发但不启动,表面看起来像不按时间跑。
4、核对触发器的开始日期与重复规则是否有效
确认触发器的开始日期没有落在过去且被禁用,确认重复间隔与持续时间设置没有互相冲突;对按周或按月的触发器,要核对是否选错了星期或月份范围。
5、排查是否被并发与超时规则挡住
查看【设置】中是否启用了运行超时、是否允许按需运行、以及任务正在运行时的处理方式;如果上一轮回归耗时超过周期且你设置为不启动新实例,就会出现下一次到点也不启动的现象。
6、回到Testbed侧验证命令行入口在无界面环境下是否能跑通
用同一执行账号在命令行手工运行一次,确认许可证可用、工程路径可访问、输出目录有写权限、以及依赖的编译器或环境变量在非交互会话里同样生效;如果手工可跑而排程不可跑,问题更可能在排程条件与账号权限;如果手工也不可跑,先修复执行入口再谈排程。
三、testbed任务排程日志怎么看
把排程跑起来之后,还需要让每一次运行都能被解释,能被复核,能快速定位失败原因。建议把日志、报告与运行标识做成固定规范,并把留存周期与告警方式写进团队约定,避免靠个人经验临时翻目录。
1、为每次运行生成独立的结果目录并带上运行标识
按项目名、序列名与开始时间生成唯一目录,把日志与报告放到同一层级,避免并发运行互相覆盖,也方便按时间段回查与做差异对比。
2、在排程任务里固定日志输出位置并保留返回码
把标准输出与错误输出写入固定日志文件,同时在任务结果里记录返回码与结束时间;当任务未按时跑或跑了但没产出时,可以先用返回码判断是未启动、启动失败还是工具执行失败。
3、把报告生成与归档动作也纳入排程链路
在任务的【操作】里先执行回归,再追加一个归档动作,把报告复制到共享目录或制品库,并按日期建目录;这样审计抽查时不需要回到执行机找历史文件。
4、用变更触发补齐按时间触发的盲区
对回归测试,可以结合工具侧的回归机制与变更检测能力,把按时间运行与按变更运行配合使用,避免只在夜间定时跑而白天变更无人验证的空档。
总结
testbed任务排程怎么设置,testbed任务排程不按时间跑怎么办,可以按三步走:先把TBrun回归序列固化为TCF并形成稳定的命令行执行入口,再用操作系统排程完成触发与并发控制,最后用历史记录、日志目录与报告归档把每次运行留成可追溯证据。遇到不按时间跑时,先查排程系统的触发与条件,再回到执行账号与无界面环境验证工具入口,通常能把问题定位到具体设置项并完成修复。