相同的硒回归测试结果不一致,像素渲染差异很小

时间:2019-07-18 14:11:19

标签: c# amazon-web-services selenium selenium-webdriver selenium-chromedriver

我正尝试将公司网站的回归测试从Selenium 2.31和Chrome 25迁移到Selenium 3.14和Chrome75。测试使用屏幕截图系统,在测试过程中将屏幕截图与基准进行比较。在此过程中,我遇到了一个问题,即对于相同的测试,只是在不同的运行之间,页面小部分的呈现方式存在细微的差异,导致测试失败。

测试每次都在具有Xeon E5-2670的AWS medium3计算机上运行。通常对于特定的测试,差异在同一位置-有时会出现,有时不会。我创建了一个小实验来对Google主页进行此操作,并且发现发生了同样的事情。

        {
            webDriver = CreateDriver(chromeOptions);
            Helper.ResizeBrowserWindows(webDriver);

            for(int i = 1; i < 200; i++) { 
                webDriver.Navigate().GoToUrl("http://www.google.ca");
                new OpenQA.Selenium.Support.UI.WebDriverWait(webDriver, new System.TimeSpan(0, 0, 10)).Until(
                    d => ((IJavaScriptExecutor)d).ExecuteScript("return document.readyState").Equals("complete"));
                screenshot.tryMatch("google" + i + ".png");
            }

            return true;
        }

差异不会每次都显示出来。例如, google198.png 与...不同 google199.png 并且可以使用https://online-image-comparison.com/之类的图像差异工具(由于我们使用图像到字节数组转换和字节数组比较,因此Fuzz设置为0)可以看出差异。 the difference

有没有人看到这种情况发生或知道可能发生什么情况?我的目标是找到原因并以某种方式解决,而不仅仅是找到解决方法(例如提高容忍度)。

1 个答案:

答案 0 :(得分:0)

因此,我为我的案件找到了解决方案。使用--disable-partial-raster标志修复了Chrome 75上的这种不一致。不确定原因(我已经与Google员工联系了),但是可以使用。