Ох, ну и полезную штуку я вам завез, любители playwright!

  • 🧑‍💻 S3 core - S3 клиент, для отправши данных в S3-совместимое хранилище.
  • 🧑‍💻 Reporter S3 - для отправки в S3 репортов автоматом
  • 🧑‍💻 Fixture S3 - для отправки в S3 данных самостоятельно из тестов

Давайте покажу сразу пример с Fixture S3. Вот у вас есть тест, который читает фаил и вы хотите его отправить в S3.

Ранее вы бы написали как-то так import {S3} from 'some-s3-package'

test('some test', async () => { const client = new S3(/** opts */)

const bucket = client.findOrGetBucket('some-name') const file = readFile('./some.txt') await bucket.putFile(file, /** opts */) })

И в данном коде много бойлерплейта, который можно избежать

А в fixture-s3 достаточно написать

import {test} from '@playwright-labs/fixture-s3'

test('some test', async ({useBucket}) => { const file = readFile('./some.txt') await useBucket('some-name').putFile(file) })

• А что, если у меня разные настройки или не обычные для S3? • Тогда test можно написать по другому, для этого была создана createFixture функция

import { createFixture } from '@playwright-labs/fixture-s3'

const { test } = createFixture(/** s3 options */)

test('some test', async ({useBucket}) => { const file = readFile('./some.txt') await useBucket('some-name').putFile(file) })

Плюс есть фича, которой в S3 SDK от aws нет, например поддержка потоков (stream)

Ну а полные примеры можно найти в папке examples/s3-stack. Пользуйтесь!

#pw_labs #playwright_labs #playwright @haradkou_sdet