代码之家  ›  专栏  ›  技术社区  ›  Brandon Olson

本地运行的测试通过,但Jenkins测试失败;为什么,我该如何解决这个问题?

  •  4
  • Brandon Olson  · 技术社区  · 7 年前

    我正在Ubuntu Linux虚拟机上运行一个相当大的基于python的测试套件,其中包含大量步骤。当我手动(通过控制台)通过任意数量的方法运行它们时,它们都可以正常运行和传递。

    在我将它们移植到Jenkins服务器后,30个服务器中有4个失败。我尝试了通常推荐的修复方法-增加关键字工作的等待时间 1s

    在谷歌上搜索了一下答案后,我发现显然没有人能给出一个被接受的答案,无论是在这个网站上还是在其他问答网站上。

    这是我从詹金斯那里收到的错误信息。

    ElementNotVisibleException: Message: element not visible
      (Session info: chrome=61.0.3163.79
      (Driver info: chromedriver=2.26.436382 (70eb799289ce4c2208441fc057053a5b07ceabac),platform=Linux 4.10.0-33-generic x86_64)
    
    WebDriverException: Message: unknown error: Cannot read property 'innerHTML' of undefined
      (Session info: chrome=61.0.3163.79
      (Driver info: chromedriver=2.26.436382 (70eb799289ce4c2208441fc057053a5b07ceabac),platform=Linux 4.10.0-33-generic x86_64)
    

    另外两个都是 element not visible 与第一个相同的异常,这两个异常都发生在 Click Button 不是测试套件中第一个单击按钮关键字的关键字。第一个发生在 Click Element 自我编写以来,它一直工作得很好,最后一个发生在经过验证的JavaScript调用上,以获取元素的文本。

    为什么有些东西在两个不同的操作系统上本地工作,然后在Jenkins上失败?

    1 回复  |  直到 7 年前
        1
  •  3
  •   Bryan Oakley    7 年前

    为什么有些东西在两个不同的操作系统上本地工作,然后在Jenkins上失败?

    • 另一个原因可能是您正在jenkins box上运行不同版本的浏览器和/或selenium驱动程序。

    • 另一个原因可能是(虚拟?)显示不同,导致元素移动到不同的位置。

    • jenkins box上的浏览器可能有不同的配置文件,导致运行不同的插件或防病毒软件。这些可能会提高页面呈现的速度,或者可能会导致覆盖屏幕部分的不需要的弹出窗口。