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

在pytest Web UI测试中,如何判断断言的通过与失败?

测试用例通过/失败的判断方法及代码修正

原代码的核心问题

你的代码目前无法正确判断测试结果,存在三个关键错误:

  • 错误地将变量名作为字符串("review_score"、"price")进行比较,而非使用实际获取的页面元素值
  • 没有从页面元素中提取评分、价格的文本内容
  • 直接用字符串类型比较数字,逻辑不符合预期(比如字符串"10"会被判定为小于"4")

正确的判断逻辑与测试结果规则

测试用例只有同时满足两个校验条件才会通过,任意一个条件不满足则失败:

  1. 商品评分校验:获取页面上的实际评分值,转换为数值类型后判断是否≥4
    • 实际评分≥4 → 该断言通过;否则断言失败,测试用例直接失败
  2. 商品价格校验:获取页面上的实际价格值,清理非数字字符后转换为数值类型,判断是否≤4000
    • 实际价格≤4000 → 该断言通过;否则断言失败,测试用例直接失败

修正后的测试代码

def test_review():
    # 处理商品评分校验
    review_element = driver.find_element(By.ID, "acrCustomerReviewText")
    # 提取文本并转换为浮点数(适配带小数的评分,比如4.5)
    review_score = float(review_element.text.strip())
    # 断言评分≥4,失败时输出明确提示
    assert review_score >= 4, f"商品评分{review_score}低于4,不符合要求"

    # 处理商品价格校验
    price_element = driver.find_element(By.ID, "corePriceDisplay_desktop_feature_div")
    # 清理价格文本中的非数字字符(示例:移除人民币符号、千分位逗号)
    clean_price_text = price_element.text.strip().replace("¥", "").replace(",", "")
    price = float(clean_price_text)
    # 断言价格≤4000,失败时输出明确提示
    assert price <= 4000, f"商品价格{price}高于4000,不符合要求"

测试结果判断方式

运行pytest后,根据终端输出即可判断:

  • 输出PASSED → 两个校验条件都满足,测试用例通过
  • 输出FAILED并附带断言错误提示(比如评分不足4或价格超标的具体信息)→ 测试用例失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 06:20:28