mvadzim / visualception

Codeception 的视觉回归测试

2.0.3 2019-12-27 07:34 UTC

This package is auto-updated.

Last update: 2024-09-10 20:25:09 UTC


README

这是 分支,源自 Codeception 的视觉回归测试.

安装

composer require mvadzim/visualception:dev-master

示例配置

modules:
    enabled: 
        - WebDriver:
            url: https://.com
            browser: firefox
        - VisualCeption:
            maximumDeviation: 5                                   # deviation in percent
            saveCurrentImageIfFailure: true                       # if true, VisualCeption saves the current
            fullScreenShot: resize                                # fullpage screenshot (resize/scroll/false)
            referenceImageDir: "/home/qa/img_storage/[browser]/"  # "[browser]" replaced to "firefox"
            currentImageDir: "visualception/current/[browser]/"   # tests/_output/visualception/current/firefox/
            report: true         # tests/_output/vcresult.html
            referenceImageDeleteLink: "http://mytestserver.example.com/delete_reference_image.php?file=[file]&browser=[browser]&environment=dev"

注意

此分支是为自身需求而创建的,因此对于基本使用来说,不需要期待其稳定性和可靠性。

变更

  • 新的保存当前和基准截图的路径,"[browser]" 在路径中会自动替换为浏览器名称
  • 新的方法 seeVisualChangesInCurrentPage 和 dontSeeVisualChangesInCurrentPage,无需传递标识符(当前打开的页面的 URL 即为标识符)
  • fullScreenShot: 'resize' - 改变浏览器窗口大小为页面高度(需要在大高度虚拟屏幕上运行)
  • 新的报告模板
  • 可以删除页面上的元素(display:none)
  • 报告不会覆盖之前运行的结果
  • 添加了删除基准截图的链接

简单示例

class VisualCest
{
   /**
    * @env firefox
    * @env chrome
    *
    * @example(url="https://time.is/ru/Kyiv", wantTo="Страница точного времени в Киеве, этот тест будет постоянно падать")
    * @example(url="https://github.com/pricing", wantTo="Страница с ценами на гитхаб, этот тест будет падать редко")
    * @example(url="https://time.is/uk/Kyiv", wantTo="Сторінка точного часу в Києві, цей тест буде постійно падати")
    */
   public function visualTest(\AcceptanceTester $I, \Codeception\Example $example)
   {
       $I->wantTo('Визуальная проверка важных страниц');
       $I->amOnUrl($example['url']);
       $I->dontSeeVisualChangesInCurrentPage(['div#twd'], ['iframe']); // div#twd set style "visibility: hidden;" iframe set "display: none;"
   }
}

sample report screenshot