Squish完成自动化测试后,可以在IDE中查看执行结果,也可以通过命令行生成适合归档或CI使用的报告。报告中通常会包含测试用例状态、验证点结果、错误信息和相关附件。如果导出的报告只有测试用例名称,却缺少具体通过、失败或验证结果,问题往往出在测试脚本没有写入有效结果、报告生成方式不匹配,或者测试执行被提前中断。围绕“Squish怎么生成测试报告,Squish测试报告缺少执行结果如何检查”,需要把测试执行、结果记录和报告输出三个环节分别确认。
一、Squish怎么生成测试报告
Squish测试结果首先由squishrunner记录。使用IDE运行时,这些信息会显示在Test Results视图;使用命令行运行时,则可以通过报告生成器输出到指定文件或目录。Squish 9.2仍支持同时配置多个报告生成器。
1、从IDE查看并导出测试结果
①在Squish IDE中运行目标【Test Case】或完整【Test Suite】。
②测试结束后打开底部【Test Results】,展开对应测试用例。
③检查其中是否包含【Pass】【Fail】、验证信息、异常以及开始和结束记录。
④需要保存结果时,右键单击【Test Results】,在弹出的菜单中选择【Export Results】。
⑤指定保存位置后导出XML结果文件,再检查导出的内容是否与IDE中显示一致。
Squish默认会把测试结果显示在Test Results视图中,IDE也支持直接将这些结果导出为XML。
2、通过squishrunner生成报告
CI或无人值守环境更适合使用squishrunner直接生成报告。例如:
①使用【--testsuite】指定需要运行的测试套件。
②需要限制执行范围时,再通过对应参数指定Test Case。
③使用【--reportgen】选择报告生成器和保存位置。
④CI需要JUnit结果时可使用【junit】;需要其他结构化结果时,根据当前版本支持的生成器选择对应格式。
⑤需要同时输出多种报告时,可以配置多个【--reportgen】。
Squish 9.2的squishrunner支持多个报告生成器;当前junit报告还会为失败验证保留更详细的失败条目,便于Jenkins、GitLab等平台展示结果。
3、附件较多时设置结果目录
①报告中包含失败截图、验证附件或其他文件时,设置【--resultdir】保存相关结果资源。
②确认CI运行账号对目标目录具有写入权限。
③使用文件型报告生成器时,让报告文件和附件目录保持稳定的相对关系。
④如果使用【html】【json】【xml3】等目录型生成器,不要再错误组合不兼容的【--resultdir】参数。
Squish官方说明中,文件型报告生成器可以配合--resultdir保存截图和附件,而目录型生成器自身会管理结果目录,两类方式不能随意混用。
二、Squish测试报告缺少执行结果如何检查
报告文件能够正常生成,但里面没有预期的Pass、Fail或验证结果时,应先检查Squish在执行阶段有没有真正记录这些信息。报告生成器只能输出已有测试日志,无法替测试脚本补充没有产生过的验证结果。
1、先检查Test Results中有没有原始结果
①用IDE重新执行同一个Test Case。
②展开【Test Results】,查看测试过程是否存在明确的验证条目。
③如果IDE中已经缺少执行结果,问题应优先放在测试脚本和运行过程,而不是报告格式。
④如果IDE结果完整、导出文件缺失,再继续检查报告生成器和输出配置。
这是最直接的分界方法,可以快速判断问题发生在【结果产生】还是【结果导出】阶段。
2、检查脚本是否真正写入验证结果
Squish中的test.verify()、test.compare()等函数会把Pass或Fail写入测试日志;如果脚本只是完成点击、输入和页面切换,却没有执行验证,报告自然不会包含具体校验结果。
①检查目标步骤后是否存在【Verification Point】或对应的test.验证语句。
②确认这些代码实际进入了执行路径,没有被条件判断跳过。
③BDD场景下检查目标Step是否真正执行,并确认没有缺少实现。
④对需要记录业务结果的位置补充有意义的验证,而不是只记录普通日志。
3、检查测试是否在中途异常结束
①查看【Runner/Server Log】,确认是否存在AUT崩溃、脚本异常、对象查找超时或Squish Server连接中断。
②如果报告只包含开始信息,没有正常结束结果,检查测试是否被CI强制终止。
③使用断点调试时,确认无人值守执行没有长期停在断点位置。
④多个Test Case连续运行时,检查是否因为前一个测试Fatal或环境异常导致后续用例根本没有启动。
Squish会分别保留Test Results以及Runner/Server日志;发生Fail、ExpectedFail、UnexpectedPass和错误时,可以从结果和日志两侧判断执行停在什么阶段。
三、怎样判断报告缺项来自执行过程还是报告配置
测试报告缺少结果时,最有效的处理方式不是直接更换报告格式,而是建立一条固定的验证链:同一测试先确认IDE结果,再检查命令行标准输出,最后核对生成文件。这样能够快速识别丢失发生在哪一个环节。
1、用最小测试建立报告基准
①新建一个简短Test Case,只保留一个确定能够成功的验证和一个能够明确显示结果的检查点。
②先在IDE中运行,确认【Test Results】能够看到完整状态。
③再用squishrunner执行同一用例,并生成与正式环境相同格式的报告。
④如果最小用例报告完整,而正式套件缺项,应重点检查正式测试的异常中止、条件分支和脚本逻辑。
⑤如果最小用例也缺失,则继续检查报告生成器参数、Squish版本和输出目录。
2、CI环境要核对报告是否来自本次运行
①每次执行使用独立或可识别的【结果目录】,避免多个任务覆盖同一个报告。
②检查报告文件的修改时间和本次构建编号,确认CI读取的是最新文件。
③并行运行多个Squish任务时,为每个任务分配不同的报告路径。
④CI采用JUnit解析时,确认平台读取的是当前squishrunner生成的JUnit文件,而不是旧版遗留结果。
Squish 9.2已经调整JUnit测试用例映射,并增强失败验证的详细输出,因此升级版本后也应重新验证CI平台对报告的解析效果。
总结
Squish测试报告是否完整,实际反映的是测试执行、结果记录和报告转换之间有没有保持一致。报告里缺少执行结果时,真正值得确认的是测试过程是否产生了足够的验证证据,以及这些证据有没有完整传递到最终报告。建立一套稳定的结果核对方式,可以让报告不仅用于判断测试是否通过,也能为失败定位、版本回归和CI质量门禁提供可靠依据。希望本文对大家使用Squish管理自动化测试结果有所帮助,如需进一步了解Squish测试报告生成与执行结果缺失排查方法,欢迎联系咨询。