Там два возможных способа записи сетевых вызовов:
1) Настройка прокси-сервера на мобильном устройстве с помощью любого инструмента прокси вы используете как Чарльзом, Wireshark. Я имею в виду, что вручную открываем любой инструмент GUI, который у вас есть, и трафик вашего трафика с помощью инструмента, как при прослушивании сетевого трафика.
2) Еще один способ - прокси-сервер browsermob. Это привело бы к HAR файл всех сетевых вызовов, которые были сделаны (дал бы заголовки ответа, а не данные в формате JSON) .Maven зависимость:
<dependency>
<groupId>net.lightbody.bmp</groupId>
<artifactId>browsermob-core-littleproxy</artifactId>
<version>2.1.0-beta-3</version>
</dependency>
Добавьте это где вы создаете среду:
// Starting server BrowserMobProxy
server= new BrowserMobProxyServer();
server.setConnectTimeout(10, TimeUnit.SECONDS);
server.start(8897);
Proxy proxy = ClientUtil.createSeleniumProxy(server);
возможности Set:
capabilities.setCapability(CapabilityType.PROXY, proxy);
После того как драйвер установлен, создайте файл HAR
server.newHar("2.har");
В вашем @AfterSuite добавить ниже:
if(server.getHar()==null){
System.out.println("No Har capture");
}
Har har = server.getHar();
if(har==null){
System.out.println("Har is NULL");
}
FileOutputStream fos = new FileOutputStream(FILE_OUTPUT_HAR+"fos"+".har");
har.writeTo(fos);
HarLog log = har.getLog();
if(log==null){
System.out.println("Harlog is null");
}
List<HarEntry> entries = new CopyOnWriteArrayList<HarEntry>(log.getEntries());
System.out.println("entries"+entries);
for (HarEntry entry : entries){
System.out.println("entry="+entry.getRequest().getUrl());
}
File harFile = new File(HAR_FILE_PATH+"2"+".har");
File("/Users/yourpath/"+"2"+".har");
har.writeTo(harFile);
Спасибо Tabish. Это также работает с сервером Appium? Я заметил, что appium не поддерживается BrowserMobProxy. Вот ссылка https://github.com/appium/appium/issues/4968. Есть ли у вас какие-либо предложения? –
Я попробовал apporach, как вы упомянули, файл har генерируется без какой-либо информации больше, чем основы. Вот информация. { \t "бревном": { \t \t "версия": "1.2", \t \t "создатель": { \t \t \t "имя": "BrowserMob Proxy", \t \t \t "версию": «2.1 0,0-бета-3-littleproxy», \t \t \t "комментарий": "" \t \t}, \t \t "страницы": [{ \t \t \t "идентификатор": "Second.har", \t \t \t "startedDateTime": "2016-05-26T21: 42: 46,453 + 02: 00", \t \t \t "Название": «Во-вторых.хар " \t \t \t "pageTimings": { \t \t \t \t "комментарий": "" \t \t \t}, \t \t \t "комментарий": "" \t \t}], \t \t" записи ": [], \t \t" комментарий ":" " \t} } –
Вы настроили свой телефон t o маршрутизировать свой трафик через порт прокси (8897 в примере)? –