2016-05-25 16 views
1

モバイルテストではAppiumを試しています。私たちのアプリケーションが私たちのバックエンドに向かって行うAPIコールを読む方法を見つけることができませんでした。アプリケーションのネットワーク呼び出しを「聴く」ことができますか?たとえば、バックエンドから返されたJSON本体を読み取ることはできますか?AppiumでAppiumを呼び出すRead

おかげ

答えて

0

ネットワーク呼び出しを記録する2つの方法があります。

1)あなたはチャールズ、wiresharkのように使用プロキシツールのいずれかを介して、あなたの携帯電話にプロキシを設定しますが。私が意味することは、あなたが持っているGUIツールを手動で開いて、ネットワークトラフィックを聞きたい時のようにツールを使ってトラフィックをルーティングすることです。

2)別の方法は、browsermobプロキシを使用することです。

:ご使用の環境を作成する場所

<dependency> 
     <groupId>net.lightbody.bmp</groupId> 
     <artifactId>browsermob-core-littleproxy</artifactId> 
     <version>2.1.0-beta-3</version> 
    </dependency> 

これを追加します。これは、(レスポンスのヘッダではなくJSONデータを与えるだろう).Maven依存関係がある行われたすべてのネットワーク呼び出しのHARファイルを生成します

// Starting server BrowserMobProxy 

    server= new BrowserMobProxyServer(); 
    server.setConnectTimeout(10, TimeUnit.SECONDS); 
    server.start(8897); 
    Proxy proxy = ClientUtil.createSeleniumProxy(server); 

設定機能:ドライバが設定されて

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); 
+0

おかげTabishを。これはAppiumサーバーでも機能しますか?私はappiumがBrowserMobProxyによってサポートされていないことに気づいた。リンクはhttps://github.com/appium/appium/issues/4968です。何か提案はありますか? –

+0

私はあなたが言及したようにapporachを試しました、harファイルは基本以上の情報なしで生成されます。ここに情報があります。 { \t "ログ":{ \t \t "バージョン"、 "1.2"、 \t \t "作成者":{ \t \t \t "名前": "BrowserMobプロキシ"、 \t \t \t "バージョン":「2.1 0.0-β-3- littleproxy」、 \t \t \t "コメント": "" \t \t}、 \t \t "ページ":[{ \t \t \t "ID": "Second.har"、 \t \t \t "startedDateTime": "2016-05-26T21:42:46.453 + 02:00"、 \t \t \t "タイトル":「セカンド。HAR " \t \t \t "pageTimings":{ \t \t \t \t "コメント": "" \t \t \t}、 \t \t \t "コメント": "" \t \t}]、 \t \t" エントリ":[]、 \t \t"コメント ":" " \t} } –

+0

電話機をセットアップしましたか? oプロキシポート(この例では8897)経由でトラフィックをルーティングしますか? –