QA The Other WayОбеспечение качества в эпоху тестов, написанных искусственным интеллектом. QA The Other Way.
Практическое QA

API-проверка может использовать cookies браузера.

Выберите общее или отдельное состояние запросов до заявления о независимости.

5 мин. чтенияQA The Other Way
Авторская схема общего и отдельного хранилища cookies.
Авторская редакционная иллюстрация.
Иллюстративное видео к этой статье. английский экранный текст; выберите субтитры для этого языка.

Переведенное издание. Технические идентификаторы остаются в своей первоначальной форме.

Выберите общее или отдельное состояние запросов до заявления о независимости.
Локальный пример с вымышленными данными, не интерфейс клиента или поставщика.

Тест открывает авторизованную страницу и затем читает API. Кажется, что идентичность другая, потому что кнопка не участвовала. В Playwright связанный контекст запросов может использовать cookies браузера. API не создаёт независимую границу аутентификации автоматически.

Руководство использует APIRequestContext, локальный сервер и вымышленную cookie demo_session. Нет настоящего доступа или аккаунта. Показывается хранилище, не обход правил.

Определите созданный контекст

browserContext.request и page.request используют cookies браузера. Запросы отправляют их, ответы могут обновлять. Это удобно для намеренно общей сессии, но влияет на доказательства.

request.newContext имеет отдельное хранилище. Выберите его для независимого состояния. Изоляция задаётся заранее, не объявляется после подходящего ответа.

const shared = await page.request.get('http://localhost:4181/who');
expect(await shared.text()).toBe('demo_session=fixture');

const isolated = await request.newContext();
try {
  const response = await isolated.get('http://localhost:4181/who');
  expect(await response.text()).toBe('no demo cookie');
} finally {
  await isolated.dispose();
}

Нужны сервер и браузер с вымышленной cookie. Импортируйте request и expect из Playwright. Сервер сообщает только эту cookie. Не публикуйте настоящие заголовки сессии.

Определите независимость

Общий запрос читает результат другим путём с той же идентичностью. Это может быть независимой проверкой результата, не другим пользователем или анонимным клиентом. Назовите чтение, идентичность, хранилище или авторизацию.

Без cookie настройка иная. Она не доказывает реальную политику выхода без endpoint и ожидаемого ответа. Сервер возвращает вымышленную строку, не сертификат доступа.

Копирование состояния меняет смысл. Копия сессии не анонимна. Даже пустые cookies могут сопровождаться настроенными заголовками или доступом. Проверяйте всё.

Покажите эффекты ответа

Обмен работает в обе стороны. Ответ общего контекста может установить cookie для последующего браузера. Подготовка меняет иногда больше серверной записи.

Локальный тест устанавливает вторую вымышленную cookie и находит её в браузере. Изолированный контекст остаётся отдельным. Это механизм, не вывод о всех сессиях.

Закрывайте одноразовые контексты. API сохраняет тела ответов для чтения и описывает dispose для освобождения ресурсов. Сначала прочитайте нужное доказательство.

Запишите границу идентичности

Укажите объект запроса, начальное состояние, эффекты ответа и ожидаемую идентичность. Используйте разрешённые тестовые сессии, не публикуйте состояние доступа или заголовки.

AnyTest описывает исследование и проверяемые тесты. Спросите, общая сессия или отдельное состояние. Реализация AnyTest не заявляется. Независимость называет границу, не только транспорт.

Другой путь чтения результата может быть независимым от интерфейсного сообщения, оставаясь в той же сессии. Это не противоречие, если заметка точно называет границу. Слово независимый не должно скрывать общую идентичность или дополнительные настройки доступа. Контролируемый сервер читает только вымышленное значение; он не проверяет права другого пользователя или реальную политику продукта.

Общие вопросы

Использует ли page.request отдельные cookies?

Нет. Хранилище общее с соответствующим браузерным контекстом.

Доказывает ли отдельный контекст анонимную политику?

Нет. Нужны полная настройка и ожидания настоящего endpoint.

Источники