Spec-Zone.ru › Cypress

API скриншотов после захвата

После захвата скриншота вы можете получить подробную информацию о нём через событие плагина after:screenshot. Это событие срабатывает при захвате скриншота с помощью cy.screenshot() или в результате ошибки теста. Событие срабатывает после того, как изображение скриншота запишется на диск.

Это позволяет вам записывать эту информацию, изменять изображение по мере необходимости и возвращать обновлённые данные об изображении.

Синтаксис

⚠️ Этот код является частью файла файла плагинов и, следовательно, выполняется в среде Node.js. В этом файле нельзя вызывать команды Cypress или cy, но у вас есть прямой доступ к файловой системе и остальной операционной системе.

on('after:screenshot', (details) => {
  /* ... */
})

details (объект)

Объект, описывающий захваченный скриншот, с такими свойствами:

Свойство Тип Описание
size number Размер файла изображения (в байтах).
takenAt string Дата и время захвата скриншота. Формат ISO 8601 в UTC (пример: '2020-03-09T07:30:37.686Z')
duration number Время захвата и сохранения скриншота (в миллисекундах).
dimensions object Ширина и высота изображения в пикселях (пример: { width: 100, height: 50 })
multipart boolean Было ли изображение скриншота склеено из нескольких изображений скриншотов.
pixelRatio number (Необязательно) Соотношение пикселей скриншота к пикселям, отображаемым в браузере.
name string (Необязательно) Аргумент fileName , переданный через cy.screenshot()
specName string Имя файла спецификации, в котором был захвачен скриншот.
path string Абсолютный путь к изображению.
scaled boolean Было ли приложение, подвергаемое тестированию, масштабировано для вписывания в область просмотра браузера. Может быть аргументом scale , переданным через cy.screenshot()
blackout array Аргумент blackout , переданный через cy.screenshot()

Использование

Изменение данных скриншота

Используя свой файл плагинов, вы можете обработать событие after:screenshot.

Если вы измените path, size или dimensions изображения, вам необходимо обновить новые значения, чтобы данные корректно отображались в результатах тестирования. Любые другие свойства помимо path, size и dimensions будут игнорироваться.

Вы можете вернуть объект или промис, который разрешается в объект из функции обратного вызова. Любой тип возвращаемого значения, кроме объекта, будет проигнорирован. Объект может содержать следующие свойства:

  • path: Абсолютный путь к текущему расположению изображения
  • size: Размер текущего файла изображения (в байтах)
  • dimensions: Ширина и высота текущего изображения в пикселях (как объект с формой { width: 100, height: 50 })

Свойства будут объединены с данными скриншота и переданы в обратный вызов onAfterScreenshot (если он определён с помощью Cypress.Screenshot.defaults() и/или cy.screenshot()).

Изменение пути скриншота

Если вы перемещаете расположение изображения скриншота, вам необходимо указать новый path изображения.

// cypress/plugins/index.js
const fs = require('fs')

module.exports = (on, config) => {
  on('after:screenshot', (details) => {
    console.log(details) // print all details to terminal

    const newPath = '/new/path/to/screenshot.png'

    return new Promise((resolve, reject) => {
      // fs.rename moves the file to the existing directory 'new/path/to'
      // and renames the image to 'screenshot.png'
      fs.rename(details.path, newPath, (err) => {
        if (err) return reject(err)

        // because we renamed and moved the image, resolve with the new path
        // so it is accurate in the test results
        resolve({ path: newPath })
      })
    })
  })
}

См. также

  • cy.screenshot()
  • Сервис панели мониторинга
  • Руководство по плагинам
  • Скриншоты и видео
  • Визуальное тестирование
  • Написание плагина

© 2017 Cypress.io
Licensed under the MIT License.
https://docs.cypress.io/api/plugins/after-screenshot-api

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API