如何不重复编写测试用例校验两种不同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
相关产品推荐
相关产品推荐

