Firebase Test LabのRobo Test いいね👍
書き起こし https://github.com/operando/Notes/tree/master/Shibuya_apk30
shibuya.apk #30 https://shibuya-apk.connpass.com/event/109729/
Firebase Test LabͷRobo Test ͍͍Ͷshibuya.apk #30
View Slide
Firebase Test Lab“Test your app on deviceshosted in a Google data center.“
Firebase Test Lab• ԾσόΠεͱཧσόΠε྆ํ༻ҙ͞ΕͯΔ• ࠓiOSαϙʔτ͞Εͨ• AndroidͩͱҎԼͷςετ͕Ͱ͖Δ• Instrumentation tests• Robo Test• Game loop test
Robo Test“Robo test analyzes the structure ofyour app's UI and then explores itmethodically, automaticallysimulating user activities.”
Robo TestެࣜυΩϡϝϯτhttps://firebase.google.com/docs/test-lab/android/robo-ux-test
ͳͥ Robo TestΛ͍࢝Ίͨͷ͔• ൃQAͷํ͕ࢼ͠ʹ࣮ߦͯ͘͠Εͨ• ੲʹͬͨ࣌͋·Γʹͨͨͳ͔͚ͬͨͲɺࠓճࢼͯ͠ΈͨΒྑ͘ͳͬͯͨ
ͳͥ Robo TestΛ͍࢝Ίͨͷ͔• noteAndroid 4ܥ·Ͱαϙʔτͯ͠Δ͚Ͳ ࣾʹ·ͱʹಈ͘4ܥ͕গͳ͍• ϦάϨογϣϯςετతʹखಈͰ৭Μͳը໘ΛνΣοΫ͢Δͷ͕໘• ςετίʔυॻ͍ͯͳ͍• ͚ͲɺͳΜ͔ࣗಈͰ৭Μͳը໘ݟͯ΄͍͠
Firebase Test Lab͕ରԠͯ͠ΔAPIϨϕϧ• APIϨϕϧ 18 ʙ 28• Jelly Bean MR2 ʙ P·Ͱ• ेͦ͏
Robo Testͷ࣮ߦʹඞཁͳͷ• ςετ͍ͨ͠ΞϓϦͷApk• Firebase Project• ʢίϚϯυϥΠϯ͔Β࣮ߦ͢Δ߹gcloudʣ
ແྉͰ͑·͢ʂ• Firebaseͷྉۚϓϥϯ͕ Sparkϓϥϯ or Flameϓϥϯͷ߹ ͋ΔఔແྉͰ͑·͢• ͪΐͬͱࢼ͢ʹे͑·͢
͓ۚΛ͑ͬͱ͑·͢ʂ• Firebaseͷྉۚϓϥϯ͕Blazeϓϥϯͷ߹ ͓͔͔ۚΓ·͕͢ແ੍ݶͰ͑·͢• noteBlazeϓϥϯͰFirebase test labΛ ͬͯ·͢
Pricing• ྉۚͷৄࡉҎԼΛࢀর• https://firebase.google.com/docs/test-lab/android/overview#billing
noteͰͷFirebase test labͷ ઌ݄ͷ༻ྉ• ཧσόΠεΛ2࣌ؒͪΐͬͱͬͯ 534ԁ• ԾσόΠεेͬͯ 0ԁ• ͍҆ʂʂ• Robo Test͔ͬͯ͠ͳ͍
͏্Ͱ͓ͬͯ͘ͱ͍͍͜ͱ• Robo TestͷλΠϜΞτ• ΧελϜϩάΠϯ
Robo TestͷλΠϜΞτ• Robo ςετΛ࣮ߦ͢Δ࣌ؒ• noteͰ5ʹઃఆͯ͠Δ• ·ͣ͘͡Ίͯɺ݁ՌΛݟͯঃʑʹ ΞϓϦʹ࠷దͳ࣌ؒΛݟ͚ͭΔͷ͕ྑͦ͞͏
ΧελϜϩάΠϯ• ϩάΠϯ͕ඞཁͳը໘ػೳ͕͋Δ߹ʹ͏• ϩάΠϯը໘ͷid/passwordʹೖΕΔΛ ఆٛ͢Δ• Robo Test͕ϩάΠϯը໘ʹ͖ͨΒɺͦΕͧΕͷEditTextʹఆٛͨ͠ΛೖΕɺϩάΠϯͯ͘͠ΕΔ
ΧελϜϩάΠϯ• ͜Εఆ͓͔ٛͯ͠ͳ͍ͱ ʮ͋ΕʁϩάΠϯը໘ શવ ಥഁͰ͖ͯͳ͍ʂ μϝ͡ΌΜʂʯ ͬͯͳΔͷͰɺఆ͓͖ٛͯ͠·͠ΐ͏
Demo
Test Report
݁Ռ͕γϯϓϧ
non-SDK interfacesͬͯΔ ͱ͜Ζग़ͯ͘͠ΕΔ• APIϨϕϧ 28Ҏ্Ͱಈ͔͢ͱग़ͯ͘͠ΕΔ
ύϑΥʔϚϯεग़ͯ͘͠ΕΔ
ύϑΥʔϚϯεग़ͯ͘͠ΕΔ• Roboͷૢ࡞ಈըͱSyncͯͦ͠ΕͧΕͷάϥϑ͕Ͳ͏ͳͬͯΔͷ͔ݟΕΔͷΑ͍
Robo TestͰΫϥογϡͨ͠ΒStackTraceग़ͯ͘͠ΕΔ
Robo TestͰΫϥογϡͨ͠ΒStackTraceग़ͯ͘͠ΕΔ• StackTraceݟΔͱRobo TestespressoΛͬͯΞϓϦͷૢ࡞Λͯ͠Δ͜ͱ͕Θ͔Δ
ςετͷ݁Ռ͕GCSʹอଘ͞ΕΔ• ૢ࡞ϩάͷJSON• Robo script• ͜ͷϩάΛ͑ɺಉ͡ૢ࡞ͷRobo Test͕Ͱ͖Δ• Logcat• Robo Test࣮ߦ࣌ͷͷLogcat
ςετͷ݁Ռ͕GCSʹอଘ͞ΕΔ• Robo͕ૢ࡞ͨ͠ಈը• εΫϦʔϯγϣοτ• Ϋϩʔϧάϥϑ• Robo Testͷૢ࡞͔Β࡞͞ΕΔը໘ભҠ• ͜Εͳ͔ͳ͔͍͢͝
Ϋϩʔϧάϥϑ
Robo TestΛ͍࣮ͭߦͯ͠Δͷ͔• noteͰϦϦʔεલͷQAΛ࢝ΊΔ࣌ʹ ෳόʔδϣϯɺෳͰ࣮ߦͯ͠Δ• ͲΕͰ࣮ߦ͢Δ͔Ͳ͔ͷςϯϓϨʔτΛ࡞ΕΔͷͰ ͦͷςϯϓϨʔτΛͬͯຖճ࣮ߦ͢Δͱָ• Robo script·ͩͬͯͳ͍ͷͰ ૢ࡞ຖճϥϯμϜૢ࡞
ࠓͲ͏͍͔ͨ͠• ReleaseϒϥϯνΛ࡞ͬͨΒɺCI্͔ΒࣗಈͰRobo Test࣮ߦ• ࠓgcloud͔Firebase ProjectϙνϙνͰ࣮ߦͯ͠Δ• Robo scriptΛͬͯɺܾΊΒΕͨૢ࡞Λ࣮ߦͰ͖ΔΑ͏ʹ͢Δ• ৽͍͠ػೳͱ͔࡞ͬͨΒRobo scriptϝϯς͢Δ ඞཁ͋Γͦ͏ͳͷͰͲ͏͠Α͏• ӡ༻ͯ͠Δํ͍ͨΒݟ͍ͩ͘͞
͓·͚
apk͑͋͞Ε…• ͕ࣗͨͪ࡞ͬͯΔΞϓϦ͡Όͳͯ͘ Robo TestΒͤΒΕΔ• Βͳ͍ͰͶ
gcloudͰRobo TestΛ࣮ߦ• gcloudΛΠϯετʔϧ͢Δ• https://cloud.google.com/sdk/docs/downloads-interactive
gcloud͔ΒRobo TestΛ࣮ߦgcloud firebase test android run \--type robo \--app \--device model=Pixel2,version=28,locale=ja_JP,orientation=portrait \--timeout 90s• ͜Μͳײ͡ͷίϚϯυͰ࣮ߦ
·ͱΊ• Robo TestΑ͍• ؆୯ʹ͍࢝ΊΒΕΔ• Test Report͕ॆ࣮ͯ͠Δͷخ͍͠• CIͱ͔ʹΈࠐΊΔͷΑ͍
Thanksʂʂ