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

2024-04-24 07:36:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用可用性参数维护一个用户池,以便PyTest可以从列表中选择一个可用的用户

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

我的用户池如下所示:

class User:

    def getId()

    def getPwd()

    def getAvailability()

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

任何有关配置conftest.py的帮助都会有所帮助


1条回答
网友
1楼 · 发布于 2024-04-24 07:36:55

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

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']

您可以将作用域设置为fixture,即您的用户将被设置为每个测试、函数、类和包

相关问题 更多 >