【问题标题】:Sikuli changing screen size斯库里改变屏幕尺寸
【发布时间】:2019-08-02 20:56:01
【问题描述】:

我们正在运行 Sikuli 进行 GUI(图像验证)测试。

我们在本地和 Jenkins 级别运行脚本,其中脚本首先使用从本地机器抓取的图像开发并用于在 Jenkins 上进行测试。

问题是测试用例在本地机器级别通过,但在 Jenkins 级别始终失败。

以下是我们注意到的一些可能导致此问题的原因: Jenkins 和本地机器的屏幕分辨率不同

  • 屏幕分辨率和/或大小与 Jenkins 和本地计算机不同
    • 本机分辨率为1920x1080x24
    • Jenkins机器分辨率设置为xvfb 1920x1080x24
    • 但是 Jenkins 机器上运行脚本时的屏幕尺寸设置为 1440x810
    • 我们目前还没有找到使用 Sikuli 调整此屏幕尺寸的方法;任何使用 Sikuli 或其他工具更改屏幕尺寸的建议都会很棒。
  • Jenkins 和本地机器的浏览器版本不同
    • Jenkins 正在使用 firefox webdriver
    • 本地机器正在使用 firefox webdriver
    • 我们认为这是因为 Jenkins 机器的屏幕截图工件向眼睛显示看似不同的字体形状的问题;我们说形状 bc 显然它们具有相同的字体大小、样式等。

【问题讨论】:

    标签: user-interface jenkins size resolution sikuli


    【解决方案1】:

    您应该在 SikuliX 的官方问答板 Launchpad 上提出此类问题。 我是 SikuliX 的 RaiMan 开发者。

    您使用的是什么版本的 Sikuli(X)?推荐 1.1.4。

    SikuliX 一般没有设置屏幕分辨率的功能。这是系统环境给定的。

    如果图像探针(捕获的图像)包含文本,则搜索取决于图像和当前屏幕中字体的相似程度。差异通常会导致 FindFailed。

    通常图像探针的大小(以像素为单位)必须与当前屏幕上要找到的相同。

    http://sikulix.com

    【讨论】:

    • 您好,我们使用的是 Sikuli 而不是 SikuliX,但无论如何我认为两者在方法/库/函数上都非常相似,不是吗?
    • 我们调整了浏览器大小,但仍然失败,但我们发现脚本可能失败的另一个原因:Jenkins OS 是基于 linux 的操作系统,而本地操作系统是 Windows。两者的像素渲染可能略有不同并导致失败。
    • 这个纵横比或精度问题开始很普遍。不得不在同一个显示器上捕获和运行是很遗憾的。而find 没有这样的比例修饰符。
    【解决方案2】:

    只想回答我自己的问题:

    使用Sikuli的GUI(图像/像素)取决于以下因素:

    • 浏览器类型
    • 屏幕分辨率
    • 屏幕尺寸
    • 操作系统

    这些超出了范围,无法在 Sikuli 中进行配置(并且还根据团队使用的技术堆栈进行了预设),因此最好尽可能对齐开发和测试执行机器。

    原因如下formula是匹配图片时使用的,受限于网格。

    下一个选项是使用 SikuliX 的 OCR 功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-15
      • 1970-01-01
      • 1970-01-01
      • 2018-04-27
      • 2015-07-20
      • 1970-01-01
      相关资源
      最近更新 更多