シナリオに依存しないテストの基盤作ってます / We're developing an infrastracture for tests not depending schenarios

151a0b14f5914e786e2e104cfb3a9b2f?s=47 Kuniwak
October 02, 2019

シナリオに依存しないテストの基盤作ってます / We're developing an infrastracture for tests not depending schenarios

https://testnight.connpass.com/event/145238/

一度非公開にしていましたが、再公開しました。

151a0b14f5914e786e2e104cfb3a9b2f?s=128

Kuniwak

October 02, 2019
Tweet

Transcript

  1. γφϦΦʹґଘ͠ͳ͍
 ςετͷج൫࡞ͬͯ·͢ $*$%5FTU/JHIU ,VOJXBL

  2. ൃදͷྲྀΕ  ԿΛ$*ʹࡌ͍ͤͨͷ͔  $*ʹࡌͤΔࡍͷ՝୊  EFWGBSNʢ·ͩະެ։ʣͷ঺հ

  3. ԿΛ$*ʹࡌ͍ͤͨͷ͔

  4. ࠷ۙͷ೰Έ ϞόΠϧήʔϜͷόάΛͰ͖Δ͚ͩ
 खલͷϑΣʔζͰݟ͚͍ͭͨ ཁ͢Δʹ୯ମςετͱ͔Ͱ
 ݟ͚ͭΒΕΔͳΒͱͯ΋خ͍͕͠ʜ

  5. ୯ମςετͭΒ͍ ήʔϜΤϯδϯ౎߹ͷ
 ίϯϙʔωϯτ෼ׂΛڧ੍͞Εɺ
 ҙຯͷ͋Δཻ౓Ͱͷ෼ׂΛ
 ͮ͠Β͍ʢ΍Γํ͸͋Δ͕ʣ

  6. ୯ମςετͭΒ͍ ͭ·Γɺ୯ମςετ͸ॻ͚Δ͚Ͳ
 Կ΋Θ͔Βͳ͍͜ͱ͕ଟ͍

  7. Ͱ͸݁߹ςετʁ ݁߹ςετ͸͋·ΓʹͭΒ͍ɿ w ͙͢յΕΔ w ͭͷςετέʔεͰ
 ௐ΂ΒΕΔܦ࿏͸͘͝Θ͔ͣ

  8. Ͱ͸6*ςετʁ 6*ςετ͸อक͕ͭΒ͍ɿ w γφϦΦ͸͙͢յΕΔ w ͦ΋ͦ΋γφϦΦ͕ಈ͘·Ͱ΋
 ࢼߦαΠΫϧ௕ͯͭ͘Β͍

  9. ݁࿦ʢʁʣ ήʔϜͷςετ͸Կ΍ͬͯ΋ͭΒ͍

  10. ໰୊ͷ੔ཧ w ઃܭʹࠨӈ͞ΕΔͱݫ͍͠ w ݁߹Λ૿΍͢ͱյΕ΍ͯ͘͢ݫ͍͠ w ࢼߦαΠΫϧ௕͍ͱݫ͍͠

  11. ໰୊ͷ੔ཧ w ͜ΕΒΛશͯճආ͢Δͪΐ͏Ͳ͍͍
 ςετ͕࣮͸͋Δʜ

  12. ໰୊ͷ੔ཧ w ୯ମςετͰҙຯΛ࣋ͨͤͮΒ͍෼ׂཻ౓ w ݁߹Ϩϕϧ্͛Ε͹ճආՄೳ w ͲͷΑ͏ʹ෼ׂɾ݁߹͞Εͯ΋
 ݁߹ͯ͠͠·͑͹ςετ͸Ͱ͖Δ

  13. ໰୊ͷ੔ཧ w ݁߹Λ૿΍͢ͱյΕ΍ͯͭ͘͢Β͍ w ಛఆͷೖग़ྗΛݕূ͢ΔͳΒ
 յΕΔͷ͸ճආͰ͖ͳ͍ w Ұൠతͳੑ࣭ͷݕূͳΒճආՄೳ

  14. ໰୊ͷ੔ཧ w ࢼߦαΠΫϧ௕͍ͱݫ͍͠ w ໰୊͸खಈͰେྔʹ࡞Δͱ͖ w ೖग़ྗͷࣗಈੜ੒Ͱ؇࿨Մೳ

  15. ͭ·Γʜ ԼͷςετͳΒήʔϜͰ΋ޮՌతɿ w ݁߹Ϩϕϧ͕ߴ͘ɺ w Ұൠతͳੑ࣭Λݕূ͠ɺ w ೖग़ྗ͸ࣗಈͰੜ੒͞ΕΔ

  16. ͦΜͳςετ͸͋Δͷ͔ʁʁʁ ͋Γ·͢

  17. 6*ϨΠϠʔͷ
 ϞϯΩʔςετ 6*ૢ࡞ΛࣗಈͰແ࡞ҝʹ࣮ߦ͠ɺ
 Ϋϥογϡ΍ύϑΥʔϚϯε໰୊Λ
 ൃݟ͢Δํ๏ʢΦʔτϓϨΠͷҰछʣ

  18. #VUUPO"  ͭʹߜΓࠐΉ ⁞ૢ࡞Մೳͳ΋ͷΛબ୒ ⁠ແ࡞ҝʹૢ࡞Λ࣮ߦ #VUUPO# #VUUPO$ #VUUPO% #VUUPO" #VUUPO# #VUUPO"

    5BQ
  19. զʑ͕$*ʹࡌ͍ͤͨ΋ͷ ήʔϜͰݱ࣮త͔ͭޮ཰తͳ
 ςετͱͯ͠ɺ6*ϨΠϠʔͷ
 ϞϯΩʔςετΛࡌ͍ͤͨʂ

  20. طଘπʔϧ "QQJVN΍"MU6OJUZ5FTUFS͕༗໊ ͜ΕΒ͸࢖͑ͳ͍͜ͱ͸ͳ͍͕ɺ
 ૢ࡞Մೳͳ΋ͷͷબ୒͕खؒͩ͠ɺ
 πʔϧͷ૝ఆ֎ͷ༻్ͳͷͰةݥ

  21.  ͭʹߜΓࠐΉ ⁞ૢ࡞Մೳͳ΋ͷΛબ୒ ⁠ແ࡞ҝʹૢ࡞Λ࣮ߦ ͕͜͜طଘπʔϧͩͱͭΒ͍ #VUUPO" #VUUPO# #VUUPO$ #VUUPO" #VUUPO# #VUUPO"

    5BQ
  22. ΞϓϦʹຒΊࠐΉํࣜΛ࠾༻ ΞϓϦͷϏϧυ࣌ʹ͜ͷૢ࡞πʔϧΛ
 ຒΊࠐΉ͜ͱͰɺطଘπʔϧͷ໘౗ͳ
 ෦෼Λղܾ ΞϓϦΛىಈ͢Ε͹ςετ͞ΕΔ

  23. $*ʹࡌͤΔࡍͷ՝୊

  24. Ͳ͜ͰΞϓϦΛಈ͔͔͢ ࣮ࡍʹΞϓϦΛಈ͔͢ඞཁ͕͋ͬͯɺ
 ࣮ͨͩ͠ػͰ͋Δඞཁੑ͸ͦ͜·Ͱ
 ߴ͘ͳ͍ ͨ͘͞Μԣʹฒ΂ͯಈ͔͍ͨ͠͠ɺ
 γϛϡϨʔλ࢖͑ΔͳΒ͕͍͍ͦͬͪ

  25. γϛϡϨʔλΫϥ΢υʜʁ J04"OESPJEͷ࣮ػσόΠεΛΫϥ΢υͰ
 ࣮ߦ͢ΔαʔϏε͸͍͔ͭ͘஌ΒΕ͍ͯΔ ͔͠͠γϛϡϨʔλΛΫϥ΢υͰ࣮ߦ͢Δ
 αʔϏε΋Θ͔ͣʹ͋Δ͕࢖͍ͮΒ͍ʜ

  26. ݱঢ়ͷํ਑ কདྷతʹ͸γϛϡϨʔλͰ΋ಈ͔͍͕ͨ͠ ࠓ͸·࣮ͩػ͔͠ͳ͍ͷͰɺ Ҡߦίετͷগͳ͍ঢ়ଶΛอͪͭͭɺ
 ૣΊʹऔΓ૊Έ͍ͨ

  27. ͦ͜ͰEFWGBSN ࣮ػͱγϛϡϨʔλͷ੾Γସָ͕͑Ͱɺ
 σόΠεΫϥ΢υ্ͰΞϓϦͷىಈঢ়گΛ ؅ཧ͢Δπʔϧ ·ͩະެ։͚ͩͲকདྷతʹ͸044༧ఆ

  28. EFWGBSNͷ঺հ

  29. EFWGBSNͰͰ͖Δ͜ͱ w ࢦఆͨ͠σόΠεΫϥ΢υ04ػछ
 ୆਺ΞϓϦҾ਺ͰΞϓϦΛىಈ w ΞϓϦ͕Ϋϥογϡͨ͠ΒίϚϯυΛ
 ҟৗऴྃɺࢦఆ࣌ؒੜଘͨ͠Βਖ਼ৗऴྃ

  30. ͑ɺͦΕ͚ͩʜ

  31. ཧ༝͕ʜ͋Γ·͢ʜ

  32. EFWGBSNͷࢥ૝ ࣮ػɾγϛϡϨʔλɾσόΠεΫϥ΢υΛ
 ໰Θͣɺಉ͡ΠϯλʔϑΣʔεͰ
 ىಈɾऴྃ͢Δ͜ͱͷΈʹઐ೦͢Δ ಛఆͷ৚݅Ͱ͔͠αϙʔτͰ͖ͳ͍ػೳ͸
 αϙʔτ͠ͳ͍ʢػೳͷੵू߹ओٛʣ

  33. $ devfarm run-ios --os-version 12.0 \
 --device 'apple iphone xs'

    \
 --instance-group 'example' \
 --platform 'aws-device-farm' \
 --ipa 'path/to/app.ipa' \
 --args-json '["-ARG1", "HELLO_DEVFARM"]' \
 --lifetime-sec 900 & platform status aws-device-farm launching J04ΞϓϦΛͭىಈ
  34. $ devfarm status --instance-group 'example'
 platform device os state note

    aws-device-farm apple iphone xs ios ACTIVE ىಈ͍ͯ͠ΔΞϓϦͷ֬ೝ
  35. $ devfarm halt --instance-group 'example'
 platform status aws-device-farm halting ΞϓϦͷڧ੍ऴྃ

  36. instance_groups: <group>: # for Android - platform: <platform> # required

    android: <version> # required device: <decice> # required apk: <filepath> # required app_id: <app_id> # required intent_extras: [] # optional lifetime_sec: 900 # required $ devfarm run-all planfile.yml ෳ਺ΞϓϦͷҰׅىಈ
  37. EFWGBSNͱ͸ ࣮ػͱγϛϡϨʔλͷ੾Γସָ͕͑Ͱɺ
 σόΠεΫϥ΢υ্ͰΞϓϦͷىಈঢ়گΛ ؅ཧ͢Δπʔϧ ·ͩະެ։͚ͩͲকདྷతʹ͸044༧ఆ

  38. ·ͱΊ w ϞόΠϧήʔϜʹ΋ޮ཰తͰ
 ݱ࣮తͳςετΛೖΕ͍ͨʂ w ݱࡏͷπʔϧΫϥ΢υͷঢ়گͰ΋
 ಈ͔ͤͯɺকདྷΛݟӽͨ͠
 πʔϧΛ࡞Γ·ͨ͠ w 044ԽͰ͖ͨΒͥͻ͓ࢼ͠Λ