Как тестировать веб-приложение в режиме инкогнито (приватного просмотра)?

«Как тестировать веб-приложение в режиме инкогнито (приватного просмотра)?» — вопрос из категории Веб-тестирование, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Режим инкогнито (Private Browsing) создает сессию, изолированную от основной: не сохраняются история, куки, кеш и данные форм после закрытия окна. Загрузки и закладки могут сохраняться.

Ключевые аспекты для тестирования:

  • Изоляция данных: Убедиться, что авторизация, куки, localStorage/sessionStorage из основной сессии не доступны в инкогнито и не сохраняются после его закрытия.
  • Функциональность: Проверить, что основная логика приложения работает (например, можно залогиниться заново).
  • Расширения браузера: Большинство расширений по умолчанию отключены, что может влиять на поведение страницы.
  • Кеширование: Контент не должен кешироваться между сессиями инкогнито.

Пример автоматизированной проверки (WebdriverIO):

it('cookies should not persist after incognito window is closed', async () => {
    // Открытие нового окна в режиме инкогнито
    await browser.newWindow('https://example.com', { private: true });
    // Установка тестовой куки
    await browser.setCookies([{ name: 'session', value: 'test123' }]);
    // Проверка, что кука установилась для текущей сессии
    let cookies = await browser.getCookies();
    expect(cookies).toHaveLength(1);
    // Закрытие окна инкогнито
    await browser.closeWindow();
    // Возврат к основному окну и проверка, что тестовая кука там отсутствует
    cookies = await browser.getCookies();
    expect(cookies.find(c => c.name === 'session')).toBeUndefined();
});