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 налаштування інше. Воно не доводить політику виходу без endpoint і очікуваної відповіді. Сервер повертає вигаданий рядок, не сертифікат доступу.

Копіювання стану змінює сенс. Копія сесії не анонімна. Навіть порожні cookies можуть мати заголовки або доступ. Перевіряйте все.

Покажіть ефекти відповіді

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

Тест встановлює другу вигадану cookie й знаходить у браузері. Ізольований контекст окремий. Це механізм, не висновок про всі сесії.

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

Запишіть межу ідентичності

Вкажіть об'єкт запиту, початковий стан, ефекти відповіді та ідентичність. Використовуйте дозволені тестові сесії без публікації стану доступу чи заголовків.

AnyTest описує дослідження й перевірні тести. Запитайте про спільну сесію чи окремий стан. Реалізація AnyTest не заявляється. Незалежність називає межу, не транспорт.

Інший шлях читання може бути незалежним від повідомлення інтерфейсу, залишаючись у тій самій сесії. Це не суперечність, якщо нотатка точно називає межу. Слово незалежний не повинно приховувати спільну ідентичність чи додаткові налаштування доступу. Контрольований сервер читає лише вигадане значення, не права іншого користувача або політику продукту. Відповідь може змінити наступну поведінку браузера, тому початковий стан та ефект потрібно записати разом.

Загальні запитання

Чи page.request використовує окремі cookies?

Ні. Сховище спільне з відповідним браузерним контекстом.

Чи окремий контекст доводить анонімну політику?

Ні. Потрібні повне налаштування й очікування справжнього endpoint.

Джерела