首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试并行地使用Selenium实现自动化,但多个webdriver实例崩溃了

尝试并行地使用Selenium实现自动化,但多个webdriver实例崩溃了
EN

Stack Overflow用户
提问于 2013-06-26 07:35:01
回答 6查看 20.4K关注 0票数 16

因此,我正在尝试创建一个java程序,它使用Selenium自动化WebDriver来执行网站上的任务。目前,我正在将它用于工作,以便自动化一个恼人的任务,即用户必须将文件上传到我们的数据库。我已经成功地制作了一个自动化的程序,并为自己节省了几个小时的手工工作。

现在我正在尝试让程序在parallel中运行多个浏览器。我想这样做是为了加快上传文件的速度,因为大多数时间都是在等待页面加载时浪费的。

我已经用我的程序的一个更简单的版本测试了这一点,并通过使用自己的WebDrivers打开数十到数百个线程,成功地将简单任务的速度提高了2-10倍。

问题是,每当我运行超过1个 WebDriver时,整个程序开始随机地崩溃,而在其他时候根本不工作。我尝试使用'PhantomJSDriver‘和最新的'PhantomJS.exe',但是有时它会起作用,而大多数时候它什么也不做。当它们并行运行时,同一个程序在一个驱动程序运行的情况下运行时会崩溃。

我一直在努力寻找发生这种情况的原因和绕过它的方法,但我还没有找到任何明确的东西可以使用。

如果可能的话,我该如何实现与Selenium并行的web浏览自动化呢?如果不能,我应该从哪里着手来实现这一点?

EN

回答 6

Stack Overflow用户

发布于 2013-06-26 09:05:30

这就是你需要的,它被称为"Selenium Grid“。

http://selenium-grid.seleniumhq.org/

票数 4
EN

Stack Overflow用户

发布于 2013-06-26 17:57:47

实际上,通过使用Grid,您可以使用同一台机器或多台机器(这里的机器指的是单独的计算机)并行地自动化测试。

我希望这个link will show you how to run a tests in parallel in same machine

在上面给定的链接中,用户说要创建五个不同的程序来并行运行。如果您想并行运行单个程序,则只需使用TestNg or Junit触发多个实例即可。

这是并行运行测试的示例TestNg config code。这里我运行了两个线程。因此,它将在两个线程中调用给定类文件com.test.workflow.device.testcase20的TestNg @Test方法。

代码语言:javascript
复制
  <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
 <suite name="Suite1"  parallel="test" thread-count="2">
   <test name="Testcase20" >
    <classes>
        <class name="com.test.workflow.device.testcase20"/>
    </classes>
  </test>
 </suite>

通过使用上述xml文件,您可以在使用网格的webdriver中实现并行性。

票数 2
EN

Stack Overflow用户

发布于 2013-06-28 16:08:17

您可以尝试使用Sahi http://sahi.co.in/。它可以并行运行浏览器的多个实例。

不过,看看Sahi是如何上传文件的。http://sahi.co.in/w/_setFile

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17309289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档