You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用squishtest模块的Squish测试函数始终通过,如何获取真实验证结果

问题根因

Squish的test.*系列验证函数默认仅将验证结果写入Squish内部报告,不会主动抛出异常;原生Squish运行环境会自动读取内部报告结果标记测试成败,但Robot Framework仅能通过捕获异常、判断返回值两种方式识别测试失败,无法直接读取Squish的内部报告数据,因此会出现验证实际失败但用例仍被判通过的问题。

解决方案

有两种可直接实现实时结果传递的方案,无需后续解析Squish报告:

方案1:全局开启Squish验证失败自动抛异常

Squish的squishtest.test模块提供了throwExceptions开关,开启后所有验证失败都会直接抛出异常,Robot Framework捕获后会自动标记用例失败,修改后的自定义库代码如下:

import squishtest
import names
from robot.libraries.BuiltIn import BuiltIn

# 库初始化时开启验证失败抛异常的开关
squishtest.test.throwExceptions = True

def start_aut():
    squishtest.startApplication("AUT")

def verify_image(imageFile, imageParams, imageArea):
    # 验证失败会自动抛异常,无需额外处理
    squishtest.test.imagePresent(imageFile, imageParams, imageArea)

方案2:手动获取验证返回值判断结果

如果不希望全局开启异常抛出,可直接读取test.*函数的布尔返回值,手动触发Robot Framework的失败逻辑:

import squishtest
import names
from robot.libraries.BuiltIn import BuiltIn

def start_aut():
    squishtest.startApplication("AUT")

def verify_image(imageFile, imageParams, imageArea):
    verify_result = squishtest.test.imagePresent(imageFile, imageParams, imageArea)
    if not verify_result:
        BuiltIn().fail(f"图片验证失败:{imageFile} 匹配度未达到设定阈值")

注:以上两种方案均兼容你使用的Squish for Qt 6.6.2版本,无需额外依赖。

内容的提问来源于stack exchange,提问作者Morkkis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 23:09:04