【问题标题】:Run RobotFramework tests with Sikuli Library with Jenkins on VM (RDC)使用带有 Jenkins on VM (RDC) 的 Sikuli 库运行 RobotFramework 测试
【发布时间】:2017-02-21 02:37:51
【问题描述】:

我有基于 RobotFramework 和 SikuliLibrary 的自动化测试,用于图像比较。我正在使用 Jenkins 在外部服务器 (VM) 上运行测试。 如果我打开 VM - 图像比较脚本有效。屏幕截图已创建。

如果我关闭 VM 会话并运行测试,就会出现问题。以下是关键字“获取匹配分数”的日志:

INFO Could not find C:\Images\image.png INFO ${scoreFromImage} = 0.0

看起来,当虚拟机会话未激活(打开)时,“获取匹配分数”无法从浏览器中获取快照以进行比较。

有什么想法,如何解决这个问题?

代码:

Compare Process Diagram Image [Arguments] ${ImageName} ${ImageScore} ${scoreFromImage} = Get Match Score ${ImagesDirectory}${ImageName}.png ${scoreToString} = Convert To String ${scoreFromImage} ${scoreNumberPrecision} = Get Substring ${scoreToString} 0 6 Run Keyword If ${scoreNumberPrecision} == ${ImageScore} Log Successful ELSE Log Fail

【问题讨论】:

  • 我认为有趣的部分不是 RF 和 Get Match Score,而是创建快照的代码。您是否将 RF 与 selenium2library 一起使用,并且您是否尝试在您的 Jenkins 工作中使用 Xvfb?
  • 是的,我使用 selenium2library 和创建快照的关键字是SikuliLibrary.Get Match Score。关于 Jenkins 和 Xvfb - 不,我没有尝试。
  • 那我试试看:wiki.jenkins-ci.org/display/JENKINS/Xvfb+Plugin无屏幕截图,我觉得很合理。
  • 啊,现在出现了新问题:'系统不是 Unix,Xvfb 不会启动'。我正在使用 Windows。
  • 我想这取决于你的 Jenkins slave 是如何连接的。如果作为 Windows 服务存在允许访问桌面或以特定用户身份运行服务的设置。这可能会有所帮助。

标签: jenkins virtual-machine robotframework sikuli xserver


【解决方案1】:

已解决:

VM 不能通过“X”按钮关闭。正确方法: https://support.microsoft.com/en-us/kb/302801 运行后,我有 .bat 文件,其中包含 tscon.exe %SESSIONNAME% /dest:console - VM 已正确关闭。 还必须运行“Jenkins slave jar”。

【讨论】:

    【解决方案2】:

    可以在 VM 上运行 Sikuli 测试,但需要保持会话打开。我们无法在锁定的 PC 上运行 Sikuli 脚本。当您关闭 VM 时,它会被锁定并且测试无法运行。 Sikuli 需要图像进行比较和单击,如果会话被锁定,则没有图像,因此测试无法运行。 那么我们如何克服这一点呢? : https://support.smartbear.com/viewarticle/85926/

    请参考此 URL 进行设置。通过应用这个,您可以使用最小化的 VM 窗口运行 sikuli 测试。 (仍然不能关闭 WM 窗口)

    【讨论】:

    • 嗯,很好,但是是的 - 当我的虚拟机关闭时,我仍然无法使用测试。
    • 我找到了解决方案,答案如下:)
    猜你喜欢
    • 1970-01-01
    • 2019-03-03
    • 2014-02-12
    • 2014-02-04
    • 2018-07-08
    • 2022-12-10
    • 2019-09-14
    • 1970-01-01
    相关资源
    最近更新 更多