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

如何在pytest中针对不同参数重复执行测试用例?

实现测试用例的参数化重复执行

用pytest的参数化功能就能轻松实现同一测试逻辑针对不同参数重复执行,具体修改如下:

修改后的测试代码

import pytest
from selenium.webdriver.common.by import By
import time

def test_login_infor(setup):
    # 你的登录逻辑,保持原有实现即可
    pass

@pytest.mark.parametrize("supplier_name", ["Farnell", "Tango", "Bravo"])
def test_supplier(setup, supplier_name):
    test_login_infor(setup)
    driver = setup  # 假设setup fixture返回WebDriver实例,根据你的实际情况调整
    driver.find_element(By.LINK_TEXT, "Supplier Sites").click()
    time.sleep(0.5)
    # 替换硬编码的供应商名称为参数变量
    driver.find_element(By.LINK_TEXT, supplier_name).click()
    time.sleep(0.5)
    driver.switch_to.frame("bottomframe")
    driver.switch_to.frame(driver.find_element(By.XPATH, "//frame[@name='Header']"))
    bodyText = driver.find_element(By.TAG_NAME, 'body').text
    # 可添加断言验证页面内容,示例:
    # assert f"Supplier: {supplier_name}" in bodyText

关键说明

  • @pytest.mark.parametrize装饰器用来定义参数集合,列表里的每个值都会触发一次独立的测试执行
  • 测试函数新增supplier_name参数,接收每次传入的供应商名称,替换原来硬编码的"Farnell"
  • 运行时直接用pytest命令执行该文件,会自动生成3个独立测试用例,分别对应三个供应商名称

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 20:03:20