我正在使用TestNG框架来处理selenium webdriver脚本。我在奴隶机器中使用Jenkins定期运行它们。我不使用Selenium Grid。在运行webdriver自动化测试用例时,使用硒网格优于jenkins有什么优势?请澄清我的理解是否完全错误。
答案 0 :(得分:10)
Jenkins有能力(通过Selenium Plugin)运行本地独立的Selenium服务器。您可以使用多个Jenkins从属程序来并行化测试(基于每个作业。)
Selenium Grid允许您将Selenium执行与Jenkins分开,您可以 在单个Jenkins工作中并行执行测试。
为什么要使用Jenkins Selenium插件代替网格?
运行Grid而不是Jenkins插件的一些优点:
您可以使用Jenkins从属服务器运行网格,但是您的测试仍需要等待网格节点向Jenkins服务器报告运行已完成的开销。你不能有一个“睡觉”的异步工作。直到触发完成通知(但是,想到它,这可能是Jenkins的一个很好的功能。)
但这也是主要的弱点 - 现在您已将网络通信作为运行Selenium测试的工作中的附加变量插入。不仅仅是与Selenium Grid中心的沟通,还要报告测试已经完成 - 并且由于测试问题(如浏览器死亡)而导致无法获得响应的作业。
答案 1 :(得分:5)
Selenium Grid允许多个参与者签入并获取他们的代码后续步骤或执行。 Jenkins用于构建代码/调用要处理的工作。
总是帮助我的是用夹板作为网格的经理。上层管理(Jenkins)告诉经理(Grid)运行这些测试步骤。经理(网格)将工作分配给它的工作人员以实际完成工作。一切都报告给经理,最终回到上一级。
答案 2 :(得分:4)
Selenium Grid可以帮助您在要注册到中央集线器的多个不同节点(从机)上并行运行测试。您可以通过将请求发送到集线器来创建驱动程序对象,该集线器根据您设置的所需功能找到匹配的节点,并在该节点上执行测试。
虽然Jenkins是一个持续集成工具。它无法在多个节点上分发您的测试用例。事实上,詹金斯并不是硒的特异性,它只是一种CI工具。它是构建后测试的触发点。
如果您需要跨机器分发测试,我认为您应该使用Selenium Grid,因为它将对分发进行管理并在下面进行大量工作。
但是,由于jenkins允许您运行多个节点,您可以使用它来分发测试,但是您必须在管理部分分配测试,然后获得合并报告。在这方面,Selenium插件可能会有所帮助。