t.me/atinfo_chat Telegram группа по автоматизации тестирования

Нестабильные результаты прогона или 504 Gateway Time-out

pytest
execution
reporting
python
kubernetes
webdriver
Теги: #<Tag:0x00007fb2f9fb96f0> #<Tag:0x00007fb2f9fb9510> #<Tag:0x00007fb2f9fb93d0> #<Tag:0x00007fb2f9fb9290> #<Tag:0x00007fb2f9fb9150> #<Tag:0x00007fb2f9fb9010>

(Dmitry Morozov) #1

Автоматизирую тесты на Python + Selenium + pytest +/- мелкие библиотеки
Написал некоторый набор тестов, все работает отлично за исключением пары тестов, которые дают не стабильный результат: Делаю 10 прогонов с одной и тоже логикой на одном и том же сервере и получаю примерно 7 успешных и 3 неудачных прогона, ошибка очень странная и не гуглиться:

self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x10ec47b00>
response = {'status': [13, 'unknown error'], 'value': "<html><body><h1>504 Gateway Time-out</h1>\nThe server didn't respond in time.\n</body></html>"}

Такая ошибка не одна и во всех подобных тестах падение происходит во время перехода по url, делаю вот так:

self.open(self.url + self.my_url)
->
self.driver.get(project + path)

Что это может быть? Как гуглить? Есть ли костыли по этой баге и тд? Если нужно больше информации пишите - докину

Сами тесты крутятся в кубере и перезагрузка куба на время решает эту проблему, но не исключает ее


(Valentin G ) #2

Я бы попросил вначале программистов посмотреть, что в данный момент происходит в логах. Возможно бага самой аппликации.


(Lev Yarushin) #3

Возможно ваш стенд не выдерживает нагрузки.


(Дмитрий Мирошник) #4

Попробуйте снимать скриншоты при падении тестов. Иногда помогает установить причину проблемы. Хотя очень похоже на то, что сказал @Valentin_G: тестовое окружение не выдерживает нагрузки. Проверить просто: напишите простенький многопоточный тест, который будет бомбить backend REST запросами, аналогичными тем, которые возвращают 504.


(Dmitry Morozov) #5

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


(Valentin G ) #6

В проекте была ситуация - нестабильно работал сторонний сервис, надо было проверить его. Используя JMeter сделал нагрузочный тест, при 20 запросах - более 50% было с 500 кодом. Дал результаты тамошним разработчикам - за пару дней нашли у себя баг и пофиксили.


(Dmitry Morozov) #7

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


(Alexandr D.) #8

А поподробнее можно расписать решение?
Спасибо.


(Dmitry Morozov) #9

у нас слишком сложная система в кубернетисе, чтобы расписать подробно девопсовское решение, но решение нужно искать на стороне кубернетиса и его настроек