|
|
1 долоо хоног өмнө | |
|---|---|---|
| config | 1 долоо хоног өмнө | |
| examples | 1 долоо хоног өмнө | |
| src | 1 долоо хоног өмнө | |
| .gitignore | 1 долоо хоног өмнө | |
| README.md | 1 долоо хоног өмнө | |
| package.json | 1 долоо хоног өмнө |
Система тестирования совместной работы с документами на Node.js с использованием Playwright.
collaboration-test/
├── package.json # Зависимости проекта
├── README.md # Документация
├── config/
│ └── users.js # Конфигурация пользователей
├── src/
│ ├── index.js # Основной оркестратор тестов
│ └── actions.js # Модуль действий браузера
├── examples/
│ └── custom-scenario.js # Пример кастомного сценария
└── screenshots/ # Папка для скриншотов (создаётся автоматически)
Клонируйте проект и установите зависимости:
npm install
Установите браузеры Playwright:
npm run install-browsers
Настройте пользователей в config/users.js:
const users = [
{
id: 'user1',
name: 'Alice',
email: 'your-test-email1@gmail.com',
password: 'your-password',
role: 'editor'
},
// ... добавьте больше пользователей
];
Настройте тестовый документ в том же файле:
const testDocument = {
url: 'https://docs.google.com/document/d/YOUR-DOCUMENT-ID/edit',
title: 'Ваш тестовый документ'
};
npm test
node examples/custom-scenario.js
const CollaborationTestOrchestrator = require('./src/index');
const orchestrator = new CollaborationTestOrchestrator();
orchestrator.runCollaborationTest();
После выполнения тестов вы получите:
screenshots/test-report.jsonКласс CollaborativeActions поддерживает следующие методы:
// Базовые действия
await session.initialize(); // Инициализация браузера
await session.login(); // Авторизация
await session.openDocument(url); // Открытие документа
// Действия с контентом
await session.typeText(text); // Ввод текста
await session.simulateTyping(5000); // Симуляция печати
await session.addComment(text); // Добавление комментария
// Утилиты
await session.takeScreenshot(name); // Скриншот
await session.cleanup(); // Очистка ресурсов
class MyCustomTest extends CollaborationTestOrchestrator {
async executeTestScenario() {
// Ваш кастомный сценарий
await this.myCustomAction();
}
async myCustomAction() {
for (const session of this.userSessions) {
await session.typeText('Мой текст');
}
}
}
MIT License