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

Асинхронность: ждать и не простаивать

junior~20 мин

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

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

Две странности в наследстве Глеба. Набор тестов экрана заказа идёт четыре минуты, хотя каждый тест делает пару проверок. А тест брони мест зелёный, хотя вчера на стенде место 14Б ушло двум покупателям. Подозреваю, что оба раза виновато ожидание ответа. Разберись, на стендапе расскажешь.

Тесты почти всё время ждут. Ответа API, записи в базу, кнопки, которая появится в браузере через полсекунды. Ждать можно с умом и без. В этом уроке разберём, как код ждёт ответа, почему без этого не написать ни одного теста на Playwright для JavaScript и как одно забытое слово делает зелёным тест, который должен быть красным.

Официант в кафе

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

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

Тест, который ходит в три сервиса, это официант, а сервисы это кухня. Пока афиша «думает» над ответом, ничто не мешает спросить схему зала и платёжный шлюз.

урок из курса

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

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