如何在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
相关产品推荐
相关产品推荐

