2016-04-28 80 views
0

我有一个使用Firefox的Selenium Web驱动程序的过程,用于自动查找特定站点上的信息。由于查询的数据量很大,我需要运行并行进程 - 至少10(我认为)。 我做了一个快速测试,3个进程并行运行,看起来没问题。但我将需要更多.. 该进程是用C#编写的,可在Windows上运行。 Firefox是与网站一起工作的唯一网络驱动程序。Selenium Web Diver,Firefox。运行并行抓取。我需要Selenium Grid吗?

我的问题:

  1. 有没有在我的处境使用硒电网的任何好处? Vs只是运行我的进程的许多副本(每个创建一个硒web驱动程序的实例),因为它被发现最佳?

  2. 什么数量的进程(使用FF)可能是最优的? (根据FF请求) FF会对网站运行并行请求,还是将它排队?

谢谢。

回答

1

您需要需要的唯一原因硒网格是如果您计划在多台虚拟机或计算机上扩展此进程的。否则,你只能在一台机器上运行它们。

回答您的问题直接

  1. 硒电网会给你一种方式来轻松扩展到多台机器或虚拟机的自动化任务。否则,您将被限制为仅在您拥有Visual Studio的机器上运行它们,或者如果您从中创建了应用程序,那么您将不得不将该应用程序放置在您要使用的所有机器上,并手动将其启动(或我猜测的任务)。

  2. 没有设置最佳数量,它取决于你的硬件,最重要的是你的CPU和RAM。我有一个2节点的硒网格设置工作,我们在每个节点上并行运行大约5-10次测试。这些机器是四核i7 CPU(我相信)和16 GB RAM的虚拟机。我们使用chrome,尽管我认为它比Firefox使用更多的RAM。

+0

谢谢。并发请求FF的最大数量将会(对同一个站点)做什么?我读的地方它是最大6.我也想知道每个硒驱动程序的实例是否会创建一个单独的FF过程或将(如手动使用FF时)只有一个... – Mravek

+0

嗯我不知道并发请求FF可以使一个站点,我认为这将取决于处理请求的站点或服务器。每次初始化WebDriver的新实例时,它都会创建一个具有自己的PID的新进程,因此每个实例都将与其他实例完全分离。 –

+0

非常感谢你 – Mravek

相关问题