如何使用 PyTest 和 Selenium 维护用户池?

How to maintain a pool of users with PyTest & Selenium?

我正在尝试维护一个具有可用性参数的用户池,以便 PyTest 可以从列表中选择一个可用用户。

但我不知道该把它放在哪里,这样即使在 运行 多次测试中,对象也不会被破坏。

我的用户池如下所示:

class User:

    def getId()

    def getPwd()

    def getAvailability()

基本上,我想配置 PyTest,以便在开始每个测试之前,它从池中获取可用用户并将其状态更改为 False

配置 conftest.py 方面的任何帮助都会有所帮助。

可能我没有正确理解你的问题,但第一个想法是这样的:

import pytest


class UsersFactory:
    _pool = [{"user": "user1", "status": True}, {"user": "user2", "status": True}, {"user": "user3", "status": True},
             {"user": "user4", "status": True}]
    _user = None

    @classmethod
    def get_user(cls):
        cls._user = cls._pool.pop(0)
        return cls._user

    @classmethod
    def back_user(cls):
        cls._user['status'] = False
        cls._pool.append(cls._user)
        cls._user = None


@pytest.fixture
def user():
    yield UsersFactory.get_user()
    UsersFactory.back_user()


def test_smth(user):
    print(user)
    assert user['status']


def test_smth2(user):
    print(user)
    assert user['status']

您可以将范围设置为夹具,您的用户将被设置为每个测试、功能、class、包