Không có mô tả

shoumen caaf3a5ba6 OK 9 tháng trước cách đây
config caaf3a5ba6 OK 9 tháng trước cách đây
examples 7328b06cb0 ok 10 tháng trước cách đây
src caaf3a5ba6 OK 9 tháng trước cách đây
.gitignore 7328b06cb0 ok 10 tháng trước cách đây
README.md 7328b06cb0 ok 10 tháng trước cách đây
package.json 7328b06cb0 ok 10 tháng trước cách đây

README.md

Collaborative Document Testing System

Система тестирования совместной работы с документами на Node.js с использованием Playwright.

🚀 Возможности

  • Множественные браузеры: Автоматически открывает несколько браузеров
  • Авторизация пользователей: Логинится под разными учётными записями
  • Совместное редактирование: Симулирует одновременную работу пользователей
  • Автоматические сценарии: Выполняет заранее заданные действия
  • Скриншоты: Делает снимки экрана на каждом этапе тестирования
  • Отчёты: Генерирует подробные отчёты о тестировании

📁 Структура проекта

collaboration-test/
├── package.json                 # Зависимости проекта
├── README.md                   # Документация
├── config/
│   └── users.js               # Конфигурация пользователей
├── src/
│   ├── index.js              # Основной оркестратор тестов
│   └── actions.js            # Модуль действий браузера
├── examples/
│   └── custom-scenario.js    # Пример кастомного сценария
└── screenshots/              # Папка для скриншотов (создаётся автоматически)

🛠 Установка

  1. Клонируйте проект и установите зависимости:

    npm install
    
  2. Установите браузеры Playwright:

    npm run install-browsers
    

⚙️ Настройка

  1. Настройте пользователей в config/users.js:

    const users = [
    {
    id: 'user1',
    name: 'Alice',
    email: 'your-test-email1@gmail.com',
    password: 'your-password',
    role: 'editor'
    },
    // ... добавьте больше пользователей
    ];
    
  2. Настройте тестовый документ в том же файле:

    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();

📋 Сценарии тестирования

Встроенные сценарии:

  1. Одновременный ввод текста - все пользователи печатают одновременно
  2. Последовательное комментирование - пользователи по очереди добавляют комментарии
  3. Смешанные действия - комбинация редактирования и комментирования

Кастомные сценарии:

  • Race condition тест - проверка конфликтов при одновременном редактировании
  • Цепочка комментариев - симуляция обсуждения
  • Паттерны поведения - различное поведение в зависимости от роли пользователя

📊 Результаты

После выполнения тестов вы получите:

  • Скриншоты в папке screenshots/
  • JSON отчёт в файле 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();            // Очистка ресурсов

🚨 Важные замечания

  1. Безопасность: Не используйте реальные пароли в production
  2. Лимиты API: Учитывайте ограничения сервисов (Google Docs, etc.)
  3. Браузеры: Тесты запускаются в видимом режиме для наблюдения
  4. Таймауты: При медленном интернете увеличьте таймауты в коде

🛡️ Требования

  • Node.js 16+
  • Доступ к интернету
  • Тестовые аккаунты Google (для Google Docs)
  • Тестовый документ с правами на редактирование

📝 Примеры использования

Создание кастомного сценария:

class MyCustomTest extends CollaborationTestOrchestrator {
  async executeTestScenario() {
    // Ваш кастомный сценарий
    await this.myCustomAction();
  }
  
  async myCustomAction() {
    for (const session of this.userSessions) {
      await session.typeText('Мой текст');
    }
  }
}

🤝 Вклад в проект

  1. Fork проекта
  2. Создайте feature branch
  3. Внесите изменения
  4. Создайте Pull Request

📄 Лицензия

MIT License