Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用PyTest&;维护用户池;硒?_Python_Selenium_Pytest - Fatal编程技术网

Python 如何使用PyTest&;维护用户池;硒?

Python 如何使用PyTest&;维护用户池;硒?,python,selenium,pytest,Python,Selenium,Pytest,我试图用可用性参数维护一个用户池,以便PyTest可以从列表中选择一个可用的用户 但是我不知道应该把它放在哪里,这样即使在运行多个测试时,对象也不会被破坏 我的用户池如下所示: class User: def getId() def getPwd() def getAvailability() 基本上,我想配置PyTest,以便在开始每个测试之前,它从池中提取可用用户,并将其状态更改为False 配置conftest.py的任何帮助都会很有帮助。可能我没有正确理解

我试图用可用性参数维护一个用户池,以便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']

您可以将作用域设置为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中删除第二个用户。您能帮我吗?