Ника · фронтенд, #qa-antrakt
Написала свои тесты на кнопку «Купить», чтобы не сломать её при переделке. Локально зелёные, в CI красные через раз: после «Купить» адрес ещё не
/pay. Поставилаsleep(3), стало зеленее. Поставить пять, чтобы наверняка?
Оля · DevOps, #qa-antrakt
UI-набор пока из дюжины тестов, а идёт четыре минуты. По логам почти две из них он спит. Поставите пять, приду с вопросами.
Вера Ланская · лид QA, #qa-antrakt
Ни одного
sleep. Разберите с Никой её тесты: что именно они ждут и как это дождаться без часов.
В уроке 58 ты уже менял sleep на ожидание условия: письмо в Mailpit проверялось поллингом с таймаутом, а не паузой «на всякий случай». В браузере та же беда встречается на каждом шагу, потому что между кликом и результатом всегда есть сеть, скрипт и перерисовка. Хорошая новость: Playwright ждёт сам, и большую часть ожиданий писать не надо. Плохая: его легко сбить с толку, и тогда тесты Ники становятся нормой.
Выход по реплике
Актёр выходит на сцену не «на четырнадцатой минуте второго акта», а по реплике партнёра. «А вот и он!», и он появляется в дверях. Если сегодня партнёр играет медленнее, актёр по часам вышел бы в пустую сцену посреди чужого монолога. Если быстрее, на сцене повисла бы пауза. Выход по реплике всегда вовремя, каким бы ни был темп спектакля.
sleep(3) это выход по часам. Тест не знает, когда страница закончит работу, и угадывает число. Ожидание по условию это выход по реплике: тест ждёт, пока на странице случится то, что ему нужно, сколько бы это ни заняло, и идёт дальше в ту же миллисекунду.
урок из курса
Урок из курса «Автотестирование с нуля». Курс покупается один раз и остаётся навсегда: 500 ₽.
Оплата пока не подключена: премиум и курсы открываются промокодом.