我正在使用 Python 引导一个新的 Selenium 项目。来自 Java 世界,我曾经将 Webdriver 实例包装在 ThreadLocal 中。这样,我可以确定当我的测试与 TestNG 并行运行时,我的 Webdriver 会话将被隔离并且不会在线程之间共享。
我想在 Python 中实现相同的行为。对于单例,我可以使用MetaClass。要并行运行测试,我可以使用 pytest-xdist。但是你能告诉我两者是否兼容,这意味着我的会话不会混合吗?
如果您希望与 xdist 具有并行性并确保在隔离方面一切正常,请使用 --boxed 标志,如下例所示:
# Execute tests in [N] forked subprocess. Won't work on windows
pytest --dist=each --tx [N]*popen//python=python --boxed
或者作为替代方案,您可以使用 socker 服务器执行代码甚至 ssh。在此处查看有关该主题的更多信息:https ://stackoverflow.com/a/56390281/2067976 。
祝你好运 !