Squish中文网站 > 新手入门 > squish脚本执行报错怎么办 squish脚本依赖怎么检查
squish脚本执行报错怎么办 squish脚本依赖怎么检查
发布时间:2026/01/27 15:16:51

  遇到Squish脚本执行报错时,先别急着改脚本内容,很多问题其实发生在服务端连接、AUT启动与Hook阶段,脚本只是最后被动报错的一环。把日志打开、把报错阶段定位清楚,再按依赖链从外到内排查,处理速度会快很多。

  一、Squish脚本执行报错怎么办

 

  先用同一套步骤把报错复现出来,并且把关键日志抓全。你只要能回答报错发生在启动前、启动中、还是运行中,后续排查就不会乱。

 

  1、先把报错发生阶段定位清楚

 

  先看是点击运行就立刻失败,还是AUT已启动后才失败,还是跑到某个用例步骤才失败;把这三种情况分别记下来,后面对应检查点不一样。

 

  2、打开Runner与Server日志优先看第一条错误

 

  在Squish IDE里先找到Runner与Server相关输出,重点盯第一条错误与它前面几行上下文;如果配置或启动失败,通常这里会先给出更直接的原因提示。

 

  3、把IDE日志与Server日志都开到Verbose

 

  在IDE菜单进入【Edit】→【Preferences】,展开【Squish】→【Logging】,把日志级别切到Verbose,并勾选内部工具通信日志;再复现一次问题后去取日志文件,Windows下常见在AppData相关路径,Unix下常见在HOME目录下的squish工作区日志文件里。

 

  4、命令行执行时用debugLog把信息补全

 

  如果你是在CI里跑,建议在squishrunner侧打开debugLog,把应用启动、Hook阶段等信息写进debug log,方便区分是脚本问题还是Hook与启动问题;同时确认runner能连到server的host与port是否正确。

 

  5、怀疑server连接问题就先做本地自启动验证

 

  用squishrunner的local模式让它自动起停本地squishserver,先排除远程server、端口与网络引起的失败;默认端口常见是4322,先把这一层打通再回到脚本层。

 

  二、Squish脚本依赖怎么检查

 

  脚本依赖分两类,一类是脚本语言与模块依赖,另一类是AUT运行时依赖。两类混在一起查很容易走弯路,建议先把脚本侧跑通最小用例,再去查AUT侧动态库与插件。

 

  1、确认脚本语言与测试用例类型一致

 

  先确认当前测试用例是脚本用例而不是BDD用例,并确认脚本文件类型与语言一致,例如Python对应test.py,JavaScript对应test.js;语言不一致时,导入与运行入口会出现看起来像语法错误的报错。

  2、检查脚本引用的公共库与第三方模块是否可用

 

  如果你用Python写脚本,先确认公共方法文件的引入方式是否统一,必要时把公共库集中到一个文件再按规范导入;Squish也支持扩展其使用的Python环境,让更多模块可被脚本引用,但要先把模块可见性问题排干净再谈业务逻辑。

 

  3、检查AUT运行时依赖库是否能被Squish找到

 

  如果你测的是Qt应用,常见问题是Squish在Hook早期找不到Qt运行库,日志里会出现找不到Qt模块或缺少libQt相关动态库的提示;先确认你用的是正确版本的Squish,再按建议把Qt共享库路径加入LD_LIBRARY_PATH或PATH,避免覆盖原有值。

 

  4、用Server Settings核对AUT配置与启动方式

 

  在IDE里打开【Edit】→【Server Settings】确认目标AUT配置存在且可用;如果这里打不开或配置不完整,优先回看Runner与Server Log以及squishserver输出,把配置问题先处理掉再跑脚本。

 

  5、依赖冲突时做最小包验证

 

  把AUT与其依赖打成最小可运行包再测一次,优先保证在没有开发环境变量加持的情况下也能启动;最小包能跑通,说明你原环境里多半是路径、插件或库版本冲突导致的报错。

 

  三、把排查动作固化成可复现清单

 

  报错解决一次不难,难的是下次换机器、换版本、换CI节点还要重走一遍。把你这次的检查点固化下来,后续就能快速复用。

 

  1、每次报错先收集三类证据

 

  保留Runner与Server Log截取、squishserver输出与IDE verbose日志文件路径;做到别人拿到这三类信息就能复现判断。

 

  2、把版本与连接参数写进固定记录

 

  记录Squish版本、squishrunner与squishserver是否同版本、是否用local模式、host与port值;这些信息缺失时最容易把连接类问题误判成脚本错误。

 

  3、把依赖检查做成运行前动作

 

  运行前先检查脚本语言是否匹配用例类型,再检查AUT是否能独立启动,最后再启动server与执行用例;按这个顺序做,能把大多数低级失败挡在执行前。

 

  4、先跑单用例再跑全套

 

  先挑一个最短用例验证依赖链与Hook链是否通,再扩到整个testsuite;这样你能更快定位是某个用例的依赖问题,还是环境级问题。

  总结

 

  围绕Squish脚本执行报错,先抓Runner与Server Log并开启Verbose,把问题定位到连接、启动、Hook还是脚本层,再用squishrunner的local与debugLog做最小验证。围绕Squish脚本依赖检查,把脚本语言与模块依赖、AUT运行时依赖分开查,Qt类问题优先确认版本匹配与库路径可见性,最后把流程固化成清单,后续复现与交接会省很多时间。

135 2431 0251