如何使用 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、包
我正在尝试维护一个具有可用性参数的用户池,以便 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、包