Python 如何使用PyTest&;维护用户池;硒?
我试图用可用性参数维护一个用户池,以便PyTest可以从列表中选择一个可用的用户 但是我不知道应该把它放在哪里,这样即使在运行多个测试时,对象也不会被破坏 我的用户池如下所示:Python 如何使用PyTest&;维护用户池;硒?,python,selenium,pytest,Python,Selenium,Pytest,我试图用可用性参数维护一个用户池,以便PyTest可以从列表中选择一个可用的用户 但是我不知道应该把它放在哪里,这样即使在运行多个测试时,对象也不会被破坏 我的用户池如下所示: class User: def getId() def getPwd() def getAvailability() 基本上,我想配置PyTest,以便在开始每个测试之前,它从池中提取可用用户,并将其状态更改为False 配置conftest.py的任何帮助都会很有帮助。可能我没有正确理解
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']
您可以将作用域设置为fixture,您的用户将被设置为每个测试、函数、类、包基本思想仅此而已,您能否将其扩展到如何将其放置在conftest.py文件中并在不同的测试类(单独的文件)中使用?@Vivank其中一个存储在conftest.py pytest.fixture def user()中:yield UsersFactory.get_user()UsersFactory.back_user()@Vivank fixture未导入测试,只需将测试文件放在conftest.py附近即可。Userfactory文件可以放置到任何utils目录中,并导入到conftest.pyOk,谢谢您的帮助。非常感谢。您好,使用
pytest-n2
并行运行测试,它不会从dict中删除第二个用户。您能帮我吗?