запросы не перехватываются на Nougat и выше с использованием browserMobProxy - PullRequest
0 голосов
/ 11 мая 2018

Я использую BrowserMobProxy для аналитического тестирования нативного приложения для Android, я могу сгенерировать файл .har и отследить все желаемые запросы на Android версии 6.x и ниже, но на 7.x (Nougat) или выше .har файл получаетсгенерировано, но запросы не отслеживаются / фиксируются.

Любой, кто может сделать это, любезно поможет.

Если вопрос не достаточно описательный, пожалуйста, дайте мне знать, если мне нужно добавить какой-либо код /войдите в поддержку моего вопроса.

public BrowserMobProxyBaseClass bmProxy = new BrowserMobProxyBaseClass();
    public void setUp() {
        try {
            bmProxy.proxyStart();
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }


public Map<String, String> getAnalyticsKeyValue() throws Exception {
        Map<String, String> keyValue = new HashMap<String, String>();
        BrowserMobProxy server;
        Har har = server.getHar();
        String strFilePath = "Selenium_test.har";
        FileOutputStream fos = new FileOutputStream(strFilePath, false);
        har.writeTo(fos);
        HarLog log = har.getLog();
        List<HarEntry> entries = log.getEntries();
        for (int i = entries.size() - 1; i >= 0; i--) {
            HarEntry entry = entries.get(i);
            System.out.println(entry.getRequest().getUrl());
            if (entry.getRequest().getUrl().contains("ResponseTargetName")) {
                List<HarPostDataParam> listpost = entry.getRequest().getPostData().getParams();
                HashMap<String, String> actualData = new HashMap<String, String>();
                for (HarPostDataParam pair : listpost) {
                    if (pair.getValue() != null)
                        keyValue.put(pair.getName(), pair.getValue());
                    System.out.println("key : " + pair.getName() + "    Value : " + pair.getValue());
                }
                break;
            }
        }

        return keyValue;
    }


public void tearDownProxy() throws Exception {
        bmProxy.stopProxy();
        driver.quit();
        new HtmlLogger().createHtmlAnalyticsLogFile(result);

    }


<dependency>
            <groupId>net.lightbody.bmp</groupId>
            <artifactId>browsermob-core</artifactId>
            <version>2.1.5</version>
        </dependency>

1 Ответ

0 голосов
/ 11 июня 2018

Эта проблема решена, теперь я могу отслеживать запросы с помощью автоматизации, используя BMP на Android-нуге (v7.x) и выше.

Разработчики добавили BMP proxy CA в приложение

Установлен тот же СА на тестируемом устройстве

и все:

ссылка:

сертификаты для BMP: https://github.com/lightbody/browsermob-proxy/tree/master/browsermob-core/src/main/resources/sslSupport

Конфигурация безопасности сети: https://android -developers.googleblog.com / 2016/07 / изменения-в-доверенный-сертификат.html

...