我正在使用TestNG框架来处理selenium webdriver脚本.我在奴隶机器中使用Jenkins定期运行它们.我不使用Selenium Grid.在运行webdriver自动化测试用例时,使用硒网格优于jenkins有什么优势?请澄清我的理解是否完全错误.
Jenkins有能力(通过Selenium插件)运行本地独立的Selenium服务器.您可以使用多个Jenkins从属程序来并行化测试(基于每个作业).
Selenium Grid允许您将Selenium执行与Jenkins分开,并且您可以在单个Jenkins作业中并行执行测试.
为什么要使用Jenkins Selenium插件而不是网格?
当您想要一个简单的设置而不想管理网格时
当您需要使用本地Selenium实例而不是网格节点时
当您想利用其他Jenkins功能时(例如标记构建以在具有某些功能的节点上运行)
运行Grid而不是Jenkins插件的一些优点:
您可以轻松指定浏览器功能
您可以在单个作业上执行并行测试
你可以更容易地扩大规模(詹金斯因大量奴隶而臭名昭着)
您可以从Jenkins从站卸载重量级测试进程(CPU,内存和网络I/O)并运行更多并发作业.
您可以使用Jenkins从属服务器运行网格,但是您的测试仍需要等待网格节点向Jenkins服务器报告运行已完成的开销.在触发完成通知之前,您不能让"睡眠"的异步作业(但是,想到它,这可能是Jenkins的一个很好的功能.)
但这也是主要的弱点 - 现在您已将网络通信作为运行Selenium测试的作业中的附加变量插入.不仅仅是与Selenium Grid中心的通信,还要报告测试已完成 - 并且由于测试问题(如浏览器死亡)而导致无法获得响应的作业.
Selenium Grid允许多个跑步者签入并获得他们的代码后续步骤或执行.Jenkins用于构建代码/调用要处理的工作.
总是帮助我的是用夹板作为网格的经理.上层管理(Jenkins)告诉经理(Grid)运行这些测试步骤.Manager(Grid)将工作分配给它的工作人员以实际完成工作.一切都报告给经理,最终回到上一级.