如何并行运行多个测试?测试是用 Python 编写的,套件从 jenkins 开始并在 sauce labs 上运行。
当我在 jenkins 中设置不同的作业并同时运行它们时,它们都会失败,我认为这是因为它们未设置为以这种方式运行。
如果这是一个非常令人费解的问题,我深表歉意,我希望有人能指出正确的方向,我愿意提供额外的文档。
我检查了这个链接 http://nose.readthedocs.org/en/latest/doc_tests/test_multiprocess/multiprocess.html
我确实使用 nose 运行测试,但不确定我是否正确设置了它。
最佳答案
我也遇到过在 Windows 和 CentOS 7 以及 CPython 3.5.1 和 CPython 3.4.6 下并行运行 Selenium 测试的问题。
我建议您切换到 pytest
并使用 pytest-xdist
并行运行。演示如何组合 pytest
、'pytest-xdist 和
selenium` 的 github 存储库位于 https://github.com/danizen/python-selenium-parallel。 .
关键考虑因素是确保 Selenium Webdriver 的实例特定于进程。我的建议是使用 threading.local为此,我的示例改为仅在类(class)级别共享。
我还认为通常需要为 DevOps 和开发人员提供一种方法来指定用于基于环境变量或命令行选项创建 Selenium 网络驱动程序的参数。参见 https://pypi.org/project/holmium.core/就如何做到这一点而言——他们也可能支持多线程,但我不确定。但是,我不赞同钬的页面对象想法,而且许多 Selenium 网格都是自家种植的。参见 https://github.com/ncbi/robotframework-pageobjects/另一种方法,这次使用 robotframework。
请注意,nose 的开发已经停止,但我想如果您使用的是 CPython 2.7,它会可以工作,至少在 Linux 上是这样。
关于Python + Selenium : Running tests in parallel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24390663/