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

Отдельный браузер не означает отдельный аккаунт

Контексты браузера разделяют cookies, но не общие записи на сервере. Параллельным тестам, изменяющим данные, нужны отдельные аккаунты и данные.

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

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

Два условных теста идут одновременно. Первый ожидает часовой пояс UTC. Второй сохраняет значение "Europe/Riga". У каждого новый контекст браузера, но оба вошли в один аккаунт. Первый тест падает: запись на сервере изменилась, хотя cookies были разделены.

Это различие имеет значение, когда агент обеспечивает большее покрытие, чем было в вашем старом пакете. Параллельное выполнение может выявить предположения об общем состоянии, которые были скрыты при выполнении тестов один за другим. Практическим артефактом является карта владения: какой тест может записать какую учетную запись и запись, и когда это состояние сбрасывается.

Нарисуйте две границы отдельно

Руководство по аутентификации Playwright объясняет изоляцию контекста браузера и загрузку состояния аутентификации. Он также предупреждает, что тесты, которые изменяют состояние на стороне сервера, должны использовать разные учетные записи, если одновременное использование может повлиять на другой тест. Контекст - это граница клиента. Пространство имен учетной записи, клиента или записи является границей приложения. Ни одно из них не является заменой другого.

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

Выберите наименьшую полезную единицу собственности

В руководстве "Playwright" документируется одна учетная запись для каждого параллельного работника для тестов, изменяющих состояние на стороне сервера. Это может уменьшить помехи между работниками. Это не означает, что каждый тест внутри воркера может оставить после себя произвольные изменения. Сбросьте или задайте состояние, необходимое для каждого теста, и сделайте очистку явной.

Иногда более безопасной единицей является уникальная запись для каждого теста, а не учетная запись для каждого теста. Для списка задач, принадлежащего команде, отдельные учетные записи могут по-прежнему писать один и тот же общий список. Для процесса оформления заказа может потребоваться уникальное пространство имен корзины или заказа. Выберите единицу измерения из действующих правил общего доступа к продукту, а не из имени API браузера.

Контракт данных, которому может следовать агент

Напишите четыре поля рядом с каждым сценарием: пространство имен владельца, состояние установки, разрешенные записи и поведение очистки. Иллюстративный контракт может зарезервировать промежуточного пользователя для одного работника, заполнить пустую корзину перед тестом, разрешить создание только синтетических заказов и удалить эти заказы после сохранения свидетельств сбоя. Укажите, что происходит, когда очистка не удалась; в противном случае следующий запуск наследует тайну.

Сохраняйте настройку независимой от успеха другого теста. Инструменты Playwrightа обеспечивают структурированный жизненный цикл подготовки и выпуска тестовых ресурсов. Используйте этот жизненный цикл, чтобы сделать право собственности разборчивым, а не скрывать глобальную общую учетную запись за удобным именем прибора. Рецензент должен иметь возможность определить, кому принадлежит каждый изменяемый ресурс.

Команда контроля качества может использовать эту карту, чтобы тратить меньше времени на поиск случайных сбоев перекрестных тестов. Команда без контроля качества может начать с одного критического потока и одного ограниченного пула промежуточных учетных записей. Ни одному из них не нужно создавать огромную среду, прежде чем оценить, полезен ли первый поток.

Состояние аутентификации - это секретный файл.

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

Никогда не давайте исследовательскому агенту рабочий сеанс только потому, что настройка входа в систему кажется неудобной. Используйте промежуточные учетные записи с разрешениями, необходимыми для сценария. Отдельный браузер, содержащий файл cookie администратора, по-прежнему остается администратором.

Считайте ложные неудачи реальной работой

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

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

Изолирует ли новый контекст браузера данные сервера?

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

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

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

Могу ли я зафиксировать состояние аутентифицированного хранилища?

Драматург предупреждает, что он может содержать файлы cookie и заголовки, способные выдавать себя за учетную запись, и не рекомендует передавать его даже в частные репозитории.

Источники