Selenium Grid VS Jenkins

时间:2014-12-19 20:44:22

标签: jenkins selenium-webdriver selenium-grid

我正在使用TestNG框架来处理selenium webdriver脚本。我在奴隶机器中使用Jenkins定期运行它们。我不使用Selenium Grid。在运行webdriver自动化测试用例时,使用硒网格优于jenkins有什么优势?请澄清我的理解是否完全错误。

3 个答案:

答案 0 :(得分:10)

Jenkins有能力(通过Selenium Plugin)运行本地独立的Selenium服务器。您可以使用多个Jenkins从属程序来并行化测试(基于每个作业。)

Selenium Grid允许您将Selenium执行与Jenkins分开,您可以 在单个Jenkins工作中并行执行测试。

为什么要使用Jenkins Selenium插件代替网格?

  • 当您想要一个简单的设置并且不想管理网格时
  • 当您需要使用本地Selenium实例而不是网格节点
  • 当您想利用其他Jenkins功能时(例如标记构建以在具有某些功能的节点上运行)

运行Grid而不是Jenkins插件的一些优点:

  • 您可以轻松指定浏览器功能
  • 您可以在单个作业上执行并行测试
  • 你可以更容易地扩大规模(詹金斯因大量奴隶而臭名昭着)
  • 您可以从Jenkins从站卸载重量级测试进程(CPU,内存和网络I / O),并运行更多并发作业。

您可以使用Jenkins从属服务器运行网格,但是您的测试仍需要等待网格节点向Jenkins服务器报告运行已完成的开销。你不能有一个“睡觉”的异步工作。直到触发完成通知(但是,想到它,这可能是Jenkins的一个很好的功能。)

但这也是主要的弱点 - 现在您已将网络通信作为运行Selenium测试的工作中的附加变量插入。不仅仅是与Selenium Grid中心的沟通,还要报告测试已经完成 - 并且由于测试问题(如浏览器死亡)而导致无法获得响应的作业。

答案 1 :(得分:5)

Selenium Grid允许多个参与者签入并获取他们的代码后续步骤或执行。 Jenkins用于构建代码/调用要处理的工作。

总是帮助我的是用夹板作为网格的经理。上层管理(Jenkins)告诉经理(Grid)运行这些测试步骤。经理(网格)将工作分配给它的工作人员以实际完成工作。一切都报告给经理,最终回到上一级。

答案 2 :(得分:4)

Selenium Grid可以帮助您在要注册到中央集线器的多个不同节点(从机)上并行运行测试。您可以通过将请求发送到集线器来创建驱动程序对象,该集线器根据您设置的所需功能找到匹配的节点,并在该节点上执行测试。

虽然Jenkins是一个持续集成工具。它无法在多个节点上分发您的测试用例。事实上,詹金斯并不是硒的特异性,它只是一种CI工具。它是构建后测试的触发点。

如果您需要跨机器分发测试,我认为您应该使用Selenium Grid,因为它将对分发进行管理并在下面进行大量工作。

但是,由于jenkins允许您运行多个节点,您可以使用它来分发测试,但是您必须在管理部分分配测试,然后获得合并报告。在这方面,Selenium插件可能会有所帮助。