Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Изменение фильтров запросов browsermobproxy в процесе выполнения теста

browsermob-proxy
java
Теги: #<Tag:0x00007f7b656e18a0> #<Tag:0x00007f7b656e1760>

(Дмитрий Гордиенко) #1

Коллеги, доброго времени суток!

Необходима помощ по следующему вопросу:

Есть метод который сетит фильтр запросов для заголовка UserAgent:

public void implementUserAgentHeaderFilter(String userAgent){
        getBrowserMobProxyServer().addRequestFilter(new RequestFilter() {
            @Override
            public HttpResponse filterRequest(HttpRequest request, HttpMessageContents contents, HttpMessageInfo messageInfo) {
                request.headers().remove("User-Agent");
                request.headers().add("User-Agent", userAgent);
                return null;
            }
        });
    }

Проблема в том, что етот фильтр можно засетить только 1 раз, т.е. если я вызову указанный метод несколько раз:

action.implementUserAgentHeaderFilter("user_agent_1");
action.implementUserAgentHeaderFilter("user_agent_2");
...
action.implementUserAgentHeaderFilter("user_agent_n");

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

Подскажите плз возможность “динамического” редактирования заголовка UserAgent в запросах?