在工作中,我们为其中一个应用程序提供了一个自动化套件,该套件将在每次提交到master/deploy到prod时运行,很长一段时间以来,我们一直在努力使其足够可靠。
测试在Jenkins中运行,使用Selenium webDriverChromexvfb作为显示服务器。我们知道测试是有效的,因为如果我们在笔记本电脑上本地运行它们(我和两个朋友尝试过),它们每次都运行完美,但在詹金斯几乎每次都失败。几乎是关键字,因为他们也在那里工作...大约每5次就有一次。
当他们失败时,他们并不总是在同一个地方失败。有时它是一个超时,而等待一个元素,有时测试结束在一个错误页面,不应该首先到达,我不知道它是如何到达那里的...所以是的,这很令人沮丧。
我们尝试了很多不同的方法来调试它。重新编写每个测试的设置,以确保在每个测试结束时所有内容都被清除,以便下一个测试从一个干净的工作区/缓存开始,使Selenium每次看不到发生了什么时都会截屏,尝试了不同版本的chromedriver/chrome/Selenium,让测试连续运行几次,看看是否有任何模式。。。既然我的点子快用完了,我想我可以在这里问一下!。
有没有什么方法可以让Selenium driver记录整个流程,而不只是在各处截图?。我很想能够观看詹金斯的测试,但我不知道这是否可行,也不知道如何做到。
这些测试使用Java7 Spring TestNG 6.8.1 Selenium 2.45.0 XVFB作为显示服务器。
有没有关于我可以尝试什么的想法或提示?。
这是詹金斯奴隶(作为服务运行)的优先级问题。
您需要将Jenkins slave priority更改为high或realtime Find Jenkins slave process并提高优先级。跟随-https://www.sevenforums.com/tutorials/83361-priority-level-set-applications-processes.html
詹金斯臭名昭著,任务调度器效率低下。
所以两者都要用!
>
CD C:\ProjectPath
mvn test
通过以下方式调用Jenkins的"任务调度器作业":
>
添加这个构建步骤运行windows批处理命令
schtasks /Run /TN "Task Name"
阅读您尝试过的所有解决方案,我几乎可以肯定您使用虚拟机(VM)来执行Selenium测试。指出这一点的事实主要是:
当他们失败时,他们并不总是在同一个地方失败。有时是在等待某个元素时超时,有时测试会出现一个错误页面,而这个页面本来就不应该出现,我不知道它是如何出现的。。。
我已经和这件事斗争了两年多,相信我,我知道
所以是的,这很令人沮丧。
虚拟机的主要问题是,它们没有正确的渲染,无论它们的CPU和RAM有多大,它们最终都无法复制本地(或任何物理)视频卡。当你试图并行运行所有测试时,事情会变得非常糟糕。例如,我的团队不能在一个内存为12GB的虚拟机上运行超过4个浏览器!?!我的笔记本电脑配有8GB的easy,可以运行15个浏览器,同时我还可以继续做日常工作。所以底线是:Selenium驱动程序和浏览器之间的同步是个问题。根据渲染速度的不同,每次都会有所不同。
我有没有办法设置Selenium驱动程序来记录整个流程,而不仅仅是在这里和那里截屏?
实际上有几种方法。但是保持简单——使用第二个线程,每隔5秒(或者你的服务器可以跟上的量)进行一次扫描,并在每次测试中将其保存在一个文件夹中。但是出于性能原因,我建议使用队列,只保留最后12个(最后一分钟)。
更新:
我在一篇古怪的测试博客文章中扩展了这一切。
我用selenium IDE记录了一些简单的硒测试。现在我想在詹金斯进行这些测试。我需要Jenkins的哪个插件?以及如何一步一步地运行测试?谢谢你的帮助。
我一直在尝试用浏览器启动测试,而不是无头。我的代码在中,这应该由构建。在上。 有人试过吗,或者你知道我应该采取什么步骤吗?我正在通过网上提供的教程,但没有一个适合我。 我当前的错误是: java.io.:无法运行程序cmd(在目录/var/lib/jenkins/作业/测试/工作区):错误=2,没有这样的文件或目录在java.lang.ProcessBuilder.start(ProcessBui
我试图在Jenkins中运行硒。当我在本地运行它时,测试总是通过。但是在Jenkins我总是出错: 没有这样的元素: 找不到 元素: 我使用詹金斯,硒和测试
问题内容: 我有一个.Jar文件,它将在运行时将数据加载到数据库中。我已经计划通过詹金斯来担任这项工作。当我在詹金斯执行作业时,它将成功运行.JAR。但是,请说作业中是否存在空指针异常,并且该异常未成功完成。即便如此,詹金斯仍然说工作已经“通过”。如果作业执行过程中出现问题,如何使作业失败? 问题答案: @Corey的解决方案很好。而且,如果您不想编写JUnit测试并在Jenkins中提供支持,则
我在selenium firefox webdriver上运行了Cumber JVM测试。在eclipse上运行测试时一切都很正常,但当它们在Jenkins上运行时,浏览器上的url设置正确,但页面永远不会加载。Jenkins安装在windows机器上(不是无头)。可能很简单,但我似乎在网上找不到任何能给我指明正确方向的东西。 这篇文章(詹金斯与Xvfb和硒 - 火狐开始但什么都没有执行)指向硒更
> 我希望能够与Jenkins一起使用硒2。 我是两者的新手,所以请原谅我的无知。 我注意到了下面这个jenkins的插件,并安装了它。 我有一个基类如下: 我在Jenkins的Selenium插件上有以下配置: .. 一旦我尝试构建该项目并在Jenkins中运行JUnit selenium测试,它就成功构建,但它自己的测试失败了。( 编辑:我刚刚注意到您可以在Jenkins中构建后存档JUnit