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

如何不重复编写测试用例校验两种不同locale下的对应文本值

多locale版本下文本断言的通用实现方案

核心思路是通过映射关系+动态取值/参数化实现一套用例覆盖多locale校验场景,不需要重复编写测试逻辑,具体实现步骤如下:

  • 第一步:提前定义locale标识与对应预期文案的映射表
    你可以直接用键值对结构存储两个版本的预期值,示例如下:
    # 可根据测试框架技术栈更换为对象、枚举等其他结构
    LOCALE_EXPECTED = {
        "GB": "My dashboard",
        "US": "My Dashboard"
    }
    
  • 第二步:获取当前测试场景的locale标识
    可以根据你的站点实现规则,从URL路径/请求头/全局配置/环境变量等位置读取当前执行的是GB还是US版本。
  • 第三步:动态匹配预期值执行断言
    直接从映射表中取出当前locale对应的预期文案,和页面实际获取的标签文本做对比即可,不需要写两套判断逻辑。

如果需要一套用例自动跑完两个locale的场景,可以配合测试框架的参数化能力实现,无需重复编写测试逻辑,以下是Python + Selenium + pytest的完整示例:

import pytest
from selenium import webdriver

LOCALE_EXPECTED = {
    "GB": "My dashboard",
    "US": "My Dashboard"
}

# 参数化后会自动生成两个测试用例,分别对应GB、US场景
@pytest.mark.parametrize("locale", LOCALE_EXPECTED.keys())
def test_dashboard_label(locale):
    driver = webdriver.Chrome()
    # 打开对应locale的站点页面
    driver.get(f"https://your-site-domain.com/{locale}/home")
    # 获取标签实际文本
    actual_text = driver.find_element("css selector", ".nav-dashboard-label").text
    # 动态获取预期值执行断言
    expected_text = LOCALE_EXPECTED[locale]
    assert actual_text == expected_text, f"locale={locale} 文案不匹配,预期:{expected_text},实际:{actual_text}"
    driver.quit()

该方案可以适配所有主流测试框架,包括Cypress、Playwright、TestNG等,核心逻辑完全通用:映射表存储多版本预期值,动态取值做断言,一套逻辑覆盖所有场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 17:39:00