【发布时间】: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