【问题标题】:How to run multiple Selenium Firefox browsers concurrently?如何同时运行多个 Selenium Firefox 浏览器?
【发布时间】:2013-05-09 04:51:14
【问题描述】:

尝试在使用 Selenium 的同一台机器上同时运行多个进程。会发生这样的事情:

python my_selenium_process1.py &
python my_selenium_process2.py &
python my_selenium_process3.py &

据我测试,这会导致 Selenium 依次打开 Firefox 实例,这不是预期的行为。

附加说明:根据this question on superuser about multiple Firefox instances,这样做的方法是为Firefox 使用--no-remote 启动标志。这似乎是一个不错的方法,但我不确定是否有更简单的方法,或者这是否是我正在寻找的。​​p>

编辑:其目的不仅仅是加快特定测试用例的速度,还在于允许多个 Selenium 进程同时运行。

非常感谢!任何建议将不胜感激!

【问题讨论】:

  • 假设你想缩短测试时间,你看过code.google.com/p/selenium/wiki/Grid2吗?
  • 感谢您的观察,但这不一定是真的。我已经编辑了这个问题,以进一步澄清用例。基本上,测试可以不同,但​​我们需要它们同时运行。
  • 仅供参考,鼻子可以运行测试in parallel
  • 酷.... 你能用 Selenium 的 WebDrivers 和 nose 之类的东西吗?
  • 了解thread 模块,如果您想同时运行不同的“任何东西”。我过去用过它,用硒,它很好。

标签: python firefox selenium concurrency process


【解决方案1】:

您是否考虑过实施selenium grid

Selenium Grid 将通过并行运行测试来帮助您扩展。只需使用以下命令设置集线器和节点:

对于集线器

java -jar selenium-server-standalone-2.30.0.jar -role hub

对于节点

java -jar selenium-server-standalone-2.30.0.jar -role node  -hub http://localhost:4444/grid/register

【讨论】:

  • 这与问题的关系不是很清楚。动机是运行多个 Firefox 浏览器,而不是并行测试。
  • Selenium Grid 不仅仅用于并行测试。 Selenium 网格提供了一个集线器,充当负载均衡器。因此,当您触发相同或不同的测试脚本(但 selenium 服务器端口号是硬编码的 - 4444 或 5555)时,selenium 网格集线器会将测试分配给与 Selenium Grid 设置相关联的各种其他 selenium-server-ports .我建议您查看答案中提供的链接以获得更好的想法。
【解决方案2】:

您可以使用Selenium Grd 2

  • 它允许通过在多台机器上分布测试来扩展(并行执行) Check Out here

【讨论】:

  • 请参阅上面@amey 回答的评论。
【解决方案3】:
sudo easy_install -U python-wd-parallel

然后

在这里查看用法

https://github.com/OniOni/python-parallel-wd

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-07
    • 2016-10-11
    • 2019-03-30
    • 2017-09-23
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多