Ох, ну и полезную штуку я вам завез, любители 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