【selenium】自动化测试小白入门:实现只开一个窗口,不同用户循环登录

首先,我在给一个审批流写自动化脚本,需要各个不同的人登录去点通过按钮,每个人的流程都一致,唯一的区别就是user不同。

那么,我的实现目标是,不关闭browser,只写一个testcase,实现不同用户按顺序运行同一个testcase

第一次尝试,在driver里面写login

@pytest.fixture(scope="session")   # conftest文件
def driver(request):
    global driver
    name = request.param
    driver = webdriver.Chrome()
    driver.maximize_window()
    login = Login(driver)
    login.geturl(config.url)
    login.input_username_password(name, config.password)  #已经写好的登录步骤
    yield driver
    driver.quit()
    return driver

testcase中用driver这么用

@pytest.mark.parametrize('driver',['user1','user2'],indirect=True)
def test_01(driver):
	menu = menu(driver)  # 这行只是为了测试能不能正常打开和登录

这样写勉强能实现最终效果,但过程由于运行太慢我不喜欢。每次testcase运行完之后,浏览器会直接quit,然后隔很久再打开一个browser

然后!我想既然每次testcase运行都会被driver影响到,那我只要把login从driver里单独抽出来写,是不是就能实现

第二版,conftest中driver和login分开写

@pytest.fixture(scope="session")   # conftest文件
def driver():   
    global driver
    driver = webdriver.Chrome()
    driver.maximize_window()
    yield driver
    driver.quit()
    return driver

@pytest.fixture()
def login(request, driver):
    name = request.param
    login = Login(driver)
    login.geturl(config.url)
    login.input_username_password(name, config.password)  #已经写好的登录步骤
    return name

testcase中用driver和login这么用

@pytest.mark.parametrize('login', ['user1','user2'], indirect=True)
def test_01(driver, login):
	menu = menu(driver)  # 这行只是为了测试能不能正常打开和登录

成功!

  • 15
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值