Раздел 43 · Автотестирование с нуля

Изоляция и параллельный прогон: загрязнители, жертвы и свои данные

senior~30 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Оля · DevOps, #qa-antrakt

Включила вашему набору четыре воркера. Прогон API был 14 минут, стал 5. Радовалась ровно до третьего прогона: красный, 409 email_taken. Четвёртый зелёный, пятый красный на другом тесте. Откатываю на один поток?

Вера Ланская · лид QA, #qa-antrakt

Не откатывай. Параллель не ломает тесты, она показывает, что они уже сломаны: в один поток они просто не успевали друг другу помешать. Разберём, что они делят.

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

Один костюм на двоих

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

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

урок из курса

Урок из курса «Автотестирование с нуля». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.