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

browsermob-proxy недозаписывает запросы при заходе на новую страницу

Теги: #<Tag:0x00007f9af9813008> #<Tag:0x00007f9af9812ea0> #<Tag:0x00007f9af9812d60>

Добрый день
Вопрос такого рода, столкнулся с browsermob-proxy. необоходимо снимать запросы из Network и дальше уже обработка.
Проблемы с одной страницей (страница 1) не возникают - поднял прокси, взял все что надо.
Но, при открытии другой (пусть страница 2) страницы (прокси все еще поднят) запросы записываются не все. При чем, если отдельно загрузить страницу 2 - все запросы на месте.
Проблема именно с любой страницей 2.

Код не скидывал, может кто встречался с подобным. При необходимости опишу более подробно с примерами.

Возможно, при открытии новой страницы надо создавать новый har?
.newHar("la-la-la")

При открытии новой страницы я создаю новый хар )
proxy.new_har()
эффект тот же…

А нет ли принципиальной разницы между запросами, которые попадают и которые не попадают?
По умолчанию, BrowserMob создает httpProxy и sslProxy. Может, еще какой-то протокол используется, вебсокеты, например? Или какой-нибудь замут с редиректами?

Еще заметил закономерность, первый раз страница загружается довольно пордолжительное время, в статус баре видно как подгружаются элементы, все подгружается как надо. Вторая же страница загружается буквально секунду и падает. И реквестов удается выловить раза в 2-3 меньше. Пробовал ставить time.sleeep(), wait_for_traffic_to_stop(303, 400), создается впечатление, что последний не работает корректно, так как страница закрывается моментально. Смысл тот же, после отработки всех таймеров страница закрывается и тест падает по тем же причинам.
Есть идеи?

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

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

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

Я сравниваю страницы не вручную, а запускаю циклом 2 раза одну и ту же страницу, что бы видно было что приходит и что нет.
Вручную как раз в нетворке все есть.
Таймеров нет, скрипты все наши )

Вопрос решился.
Для каждой страницы создаем new_page и дело в шляпе.
Как делал раньше - new_har не помогает.

1 Симпатия

Привет
Можешь показать свой код?
Пытаюсь настроить browsermob, ничего не получается(

Хы, почти 2 года прошло )) я уже и компанию сменил, и код удачно потерян ).
Посмотри мануалы, там несложно настраивается.