Upgrade to Pro — share decks privately, control downloads, hide ads and more …

EspressoのUsageTrackerについて

 EspressoのUsageTrackerについて

「potatotips (iOS/Android開発Tips共有会) 第4回」の発表資料です。
AndroidのUIテストツールであるEspressoは、デフォルトで、解析データをGoogleに送信するようになっています。
この資料では、Espressoの解析データ送信機能(UsageTracker)で、実際に送信される情報やオプトアウトの方法などを解説しています。

TOYAMA Sumio

February 12, 2014
Tweet

More Decks by TOYAMA Sumio

Other Decks in Programming

Transcript

  1. ࣗݾ঺հ •  ࢯ໊:  ֎ࢁ७ੜ(TOYAMA  Sumio)   @sumio_tym  (twitter),  @sumio  (github)

      •  ॴଐ:  NTTιϑτ΢ΣΞגࣜձࣾ   •  ۀ຿಺༰:   – ࣾ಺Android™ؔ࿈ϓϩδΣΫτٕज़ࢧԉ   – Androidؔ࿈ࣾ಺ݚमߨࢣ   •  ϓϥΠϕʔτ:   – Androidͷࣗಈςετ༻ͷIMEΛެ։ͯ͠·͢   https://github.com/sumio/uiautomator-­‐unicode-­‐input-­‐helper   ( )  Android  is  a  trademark  of  Google  Inc. 2  
  2. Espresso͓͞Β͍ •  AndroidͷUIςετࣗಈԽπʔϧ(Googleۘ੡)   –  https://code.google.com/p/android-­‐test-­‐kit/   •  ܰྔɾߴ଎  

    •  ෯޿͍ରԠόʔδϣϯ     •  γϯϓϧͳςετίʔυ   4   // [say Hello]ͱදࣔ͞Ε͍ͯΔϘλϯΛԡͨ͠Β // TextViewʹHelloͱදࣔ͞ΕΔ͜ͱΛ֬ೝ͢Δ onView(withText("say Hello")).perform(click()); onView(withId(R.id.textview)) .check(matches(withText("Hello")));
  3. EspressoͷUsageTracker EspressoͷυΩϡϝϯτʹؾʹͳΔهड़͕…   https://code.google.com/p/android-­‐test-­‐kit/wiki/Espresso#AnalyticsΑΓ   5   Analytics   In

     order  to  understand  Espresso  usage  patterns  and  inform   decisions  about  future  improvements,  we  have  instrumented   Espresso  to  collect  analytics.  The  following  data  may  be  collected:     •  usage  of  public  APIs     •  unusual  error  conditions     •  application  package  name     ʮղੳσʔλऩू͢ΔΑ!ʯ   public  interface  UsageTracker   Used  by  test  infrastructure  to  report  usage  stats  (optionally).  This  interface   should  only  be  used  by  test  infrastructure.   https://android-­‐test-­‐kit.googlecode.com/git/docs/javadocs/apidocs/com/google/ android/apps/common/testing/testrunner/UsageTracker.htmlΑΓ   UsageTracker͕ऩू୲౰  
  4. •  ۩ମతʹ͸   1.  GraphHolder.graph()  (ॳճݺͼग़͠ͷΈ)   2.  GoogleInstrumentationTestRunner.onStart()  

    3.  λοϓૢ࡞ʹؔ͢Δҟৗൃੜ   UsageTrackerͷಈ࡞   σʔλ஝ੵλΠϛϯά(2/2) 8   ࠷ॳʹEspresso.onView()ͳͲΛݺͼग़ͨ͠ͱ͖   ςετϥϯφʔىಈ࣌   λοϓ͢Δͭ΋Γͩͬͨͷʹ   ϩϯάΫϦοΫʹͳͬͯ͠·ͬͨ࣌   ʮςετىಈɾ։࢝λΠϛϯάʯ͕ऩू͞ΕΔ   ˠ͋Μ·Γ৺഑͠ͳͯ͘ྑͦ͞͏  
  5. •  ςετର৅ΞϓϦͷύοέʔδ໊   •  τϥοΩϯάID  "UA-­‐36650409-­‐3"(ݻఆ஋)   •  trackUsage(String)ݺͼग़࣌͠ࠁ  

    •  ΫϥΠΞϯτID  (ANDROID_ID  or  randomUUID())   •  ը໘αΠζ   •  APIϨϕϧ   •  ୺຤Ϟσϧ໊   •  trackUsage(String)ݺͼग़࣌͠ͷҾ਺   UsageTrackerͷಈ࡞   ૹ৴͞ΕΔ৘ใ 9   ্هʹൿີͷ಺༰ؚ͕·Ε͍ͯΔ৔߹͸஫ҙ͕ඞཁ   (ະެදαʔϏε໊ɺະൃച୺຤Ϟσϧɺetc)   ࢀߟ:   AnalyticsBasedUsageTracker.java
  6. UsageTrackerͷಈ࡞   ΦϓτΞ΢τํ๏ 11   •  ํ๏1(υΩϡϝϯτهࡌͷํ๏):   – CLIͷҾ਺ʹ'-­‐e  disableAnalytics

     true'Λࢦఆ   •  ํ๏2:  ಠࣗInstrumentationTestRunnerΛ࡞Δ   – GoogleInstrumentationTestRunnerͷ୅ΘΓʹ࢖͏   public class AnalyticsDisabledInstrumentationTestRunner extends GoogleInstrumentationTestRunner { @Override public void onCreate(Bundle bundle) { bundle.putString("disableAnalytics","true"); super.onCreate(bundle); } } ςετϥϯφʔͷมߋ΋๨Εͣʹ!   ɾςετଆͷAndroidManifest.xml   ɾEclipseͷ[Run  Configuration] Eclipse͔Β   ઃఆෆՄ  
  7. ·ͱΊ •  Espressoͷղੳσʔλૹ৴ػೳΛௐ΂ͯΈ·ͨ͠   –  ૹ৴͞ΕΔσʔλͰؾʹͳΔ৘ใ͕͋Δͱ͖͸ΦϓτΞ ΢τ͠·͠ΐ͏   –  ௨ৗ͸͋·Γਆܦ࣭ʹͳΒͳͯ͘΋ྑͦ͞͏

      –  Eclipse͔Β΋࢖͏࣌͸GoogleInstrumentationTestRunner ͷࢠΫϥεΛ࡞ͬͯΦϓτΞ΢τ͢Δͷ͕͓͢͢Ί   12   ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠