0

我正在使用 BrowserMobProxy 对 android 本机应用程序进行分析测试,我能够生成 .har 文件并跟踪 android 版本 6.x 及以下版本但 7.x(牛轧糖)或更高版本上的所有所需请求。生成的 .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>
4

1 回答 1

0

此问题已解决,现在我可以在 android nougat (v7.x) 及更高版本上使用 BMP 通过自动化跟踪请求。

开发者在应用中添加了 BMP 代理 CA

在被测设备上安装了相同的 CA

就是这样:

参考:

BMP 证书:https ://github.com/lightbody/browsermob-proxy/tree/master/browsermob-core/src/main/resources/sslSupport

网络安全配置:https ://android-developers.googleblog.com/2016/07/changes-to-trusted-certificate.html

于 2018-06-11T09:06:23.210 回答