一休.comのE2Eテスト事情 ~Selenium 3.0 対応~ /seleniumjp4_ikyu

一休.comのE2Eテスト事情 ~Selenium 3.0 対応~ /seleniumjp4_ikyu

2016年12月18日の第4回 日本Seleniumユーザーコミュニティ勉強会の発表資料です。
https://seleniumjp.connpass.com/event/45208/

5409c2e8e1b53214f2ccfead026641ec?s=128

shota akasaka

December 18, 2016
Tweet

Transcript

  1. ҰٳDPNͷ&&ςετࣄ৘ d4FMFOJVNରԠd ୈճ೔ຊ4FMFOJVNϢʔβʔίϛϡχςΟษڧձ೥݄೔ גࣜձࣾҰٳ੺ࡔᠳଠ

  2. ࣗݾ঺հ w ੺ࡔᠳଠʢ͔͔͋͞͠ΐ͏ͨʣ w ॓ധࣄۀຊ෦γεςϜ։ൃ෦ w ॓ധαΠτͷαʔϏε։ൃ΍ͬͯ·͢

  3. ΅͘ͱ4FMFOJVNίϛϡχςΟ w ୈճ೔ຊ4FMFOJVNϢʔβʔίϛϡχςΟษڧձ w ॳࢀՃ w ୈճ೔ຊ4FMFOJVNϢʔβʔίϛϡχςΟษڧձ w ελοϑͱ͓ͯ͠ख఻͍ w

    ୈճ೔ຊ4FMFOJVNϢʔβʔίϛϡχςΟษڧձʢࠓճʣ w εϐʔΧʔͱͯ͠ࢀՃ w ୈճ೔ຊ4FMFOJVNϢʔβʔίϛϡχςΟษڧձ  w ʁʁʁ
  4. "HFOEB w ҰٳDPNͷ&&ӡ༻ࣄ৘ w αʔϏε։ൃͱڞʹาΉ&& w 4FMFOJVNରԠ w ·ͱΊ

  5. ҰٳDPNͷ&&ӡ༻ࣄ৘

  6. લఏ w ҰٳDPN͸ϗςϧɾཱྀؗͷ॓ധ༧໿αΠτͰ͢ w &$αΠτͰ༧໿͕ग़དྷͳ͍ͷ͸க໋త w ػձଛࣦେ͖͍ w ෼Ͱ΋༧໿ΛࢭΊΑ͏΋ͷͳΒɺɺɺ

  7. ֬ೝ͢Δςετʹ͍ͭͯ w ֬ೝ؍఺ w ਖ਼ৗʹʮ༧໿ʯʮมߋʯʮऔফʯ͕Ͱ͖Δ͜ͱ w ࢼݧέʔε w έʔεఔ౓ʢ༧໿ͱҰݴͰݴͬͯ΋ɺ͍ΖΜͳύλʔϯ͕͋Δʣ w

    ࢼݧ࣮ࢪλΠϛϯά w 45ϦϦʔεޙ w ຊ൪ϦϦʔεޙ
  8. ೥΄Ͳલ

  9. ˞ϦϦʔεޙɺखಈͰ༧໿֬ೝΛ͍ͯ͠Δֆ

  10. ࢒೦ɻɻɻ

  11. ݱࡏ

  12. 4UBHJOH؀ڥ 1SPEVDUJPO؀ڥ

  13. ˞ϦϦʔεޙɺ&&Ͱ༧໿֬ೝΛ͍ͯ͠Δֆ

  14. ݱࡏʹࢸΔ·ͰͷಓͷΓ

  15. എܠɿ౰࣌ͷ։ൃݱ৔ IUUQTTQFBLFSEFDLDPNLFOTVLFUBOBLBNPEBOOBYJBODIBOHOJTVSVUBNFOJTIJKJBOTJUBLPUP

  16. ϢʔβʔʹՁ஋Λಧ͚Δεϐʔυ޲্΁ w ςετͱ͍͏είʔϓͰݴ͑͹ w खಈ֬ೝ͍ͯ͠Δ࣌ؒΛ࡟ݮ͍ͨ͠ w ͦͷ࣌ؒΛαʔϏε։ൃʹ࢖͍͍ͨ w ϦϦʔεޙͷ༧໿֬ೝΛࣗಈԽ͠Α͏ w

    4FMFOJVN࢖ͬͯ&&ςετಋೖ΁
  17. 1BHF0CKFDU%FTJHO 1BUUFSOͰ࡞Γ·ͨ͠

  18. 1BHF0CKFDU%FTJHO1BUUFSO w ΞϓϦέʔγϣϯͷը໘Λ̍ͭͷΦϒδΣΫτͱͯ͠ͱΒ͑ΔσβΠϯύλʔϯ w ίʔυΛେ·͔ʹ̎छྨʹ෼ׂ w ϖʔδΫϥεͷεΫϦϓτ w ը໘୯ҐͰ࡞੒ w

    Ϙλϯ΍ςΩετϑΟʔϧυͳͲͷ)5.-ཁૉΛ؅ཧ w ςετέʔεγφϦΦͷεΫϦϓτ w ϖʔδΫϥεͷϝιουΛݺͼग़͢ w ௚઀)5.-ཁૉΛૢ࡞͠ͳ͍
  19. ޻෉͍ͯ͠Δͱ͜Ζ

  20. 1BHF#BTF$MBTT w ڞ௨ϝιου 4DSFFOTIPU ϒϥ΢βόοΫFUD  w ࢼݧέʔεಡΈࠐΈ

  21. ؀ڥຖͷઃఆϑΝΠϧ ςετର৅63-΍ಡࠐΉࢼݧέʔε͸͜͜ʹهड़͢Δ

  22. ฒྻ࣮ߦߏ੒ w ਌ࢠͰ+PCΛ෼͚ͯɺฒྻͰ࣮ߦ w Ұͭͷࢠ+PCʹςετέʔεͭ w ࣮ߦ࣌ؒ͸4UBHJOH؀ڥɿ෼ɺ1SPEVDUJPO؀ڥɿ෼ 1BSFOU +PC $IJME

    +PC $IJME +PC $IJME +PC $IJME +PC $IJME +PC $IJME +PC $IJME +PC $IJME +PC $IJME +PC $IJME +PC $IJME +PC $IJME +PC $IJME +PC $IJME +PC
  23. ৄ͘͠͸ɾɾɾ IUUQTTQFBLFSEFDLDPNTIPUBBLBTBLBDZCP[VJLZVFF

  24. ͪΐͬͱ·ͱΊͯΈΔ w &$αΠτͷ༧໿Ͱ͖ͳ͍ͷ͸க໋త w Ͱ΋ɺຖճखಈͰ֬ೝ͢Δͷ͸͠ΜͲ͍ w ͍͟ɺࣗಈԽ΁ʂʂʂ w 1BHF0CKFDU%FTJHO1BUUFSOΛ࢖ͬͯ w

    ϝϯςφϯεੑΛߴΊΔͨΊʹ޻෉΋͢Δ w ฒྻ࣮ߦ؀ڥΛ࡞ͬͯɺ࣮ߦ࣌ؒ΋୹͘͢Δ
  25. αʔϏε։ൃͱڞʹาΉ&&

  26. എܠɿਐΉαʔϏε։ൃ w ̏೥΄Ͳલ w ҰٳDPNͷ॓ധαΠτ͸Ұͭͷେ͖ͳΞϓϦέʔγϣϯͩͬͨ w ೥΄Ͳલ w ΞϓϦέʔγϣϯ෼ׂ͠ϚΠΫϩαʔϏεԽ΁ w

    ϩάΠϯपΓͷγεςϜϦϓϨΠεΛ࣮ࢪ
  27. ͦͷ݁Ռɾɾɾ w ϦϦʔεϑϩʔ͕ผʹͳΔ w ͜ΕʹΑͬͯੜͨ͡໰୊ w ೝূपΓͰͷো֐΋͠͹͠͹ɾɾɾ w $4 ΧελϚʔαϙʔτ

    ͔ΒͷϢʔβʔ໰͍߹Θͤ΋ɾɾɾ w ༧໿֬ೝ&&Ͱݕ஌ͨ͠Τϥʔ͕࣮͸ϩάΠϯىҼ w ݪҼͷ੾Γ෼͚ʹ͕͔͔࣌ؒΔ
  28. ղܾࡦɿϩάΠϯपΓͷ&&ಋೖ w ֬ೝ؍఺͕ҧ͏ w ༧໿ͱೝূ w ༧໿ɿʮ༧໿ɾมߋɾऔফ͕Ͱ͖Δ͜ͱʯ w ೝূɿʮϩάΠϯ͕Ͱ͖Δ͜ͱͰ͖ͳ͍͜ͱʯ w

    ςετ࣮ࢪλΠϛϯά w ϩάΠϯػೳϦϦʔεલʢ4513%ʣ
  29. ಋೖোน͸ߴ͘ͳ͔ͬͨ w طଘͷ&&ʹ৐͔ͬͬͨܗͰ࡞͔ͬͨΒ w ඞཁͳ1BHF$MBTTͱ5FTU$BTFΛ࡞Ε͹0, w ֬ೝର৅ͷը໘͕গͳ͍ͷ΋ॿ͔ͬͨ w ॓ധʙը໘ w

    ೝূ ը໘
  30. ಋೖޙͷޮՌ w ϩάΠϯػೳͷো֐ݮ w $4͔Βͷ໰͍߹Θͤݮ w ༧໿ͱೝূͷΤϥʔ੾Γ෼͚ w Ҏલ͸༧໿֬ೝ&&Ͱݕ஌ͨ͠ΤϥʔͷݪҼ͕ೝূʹ͋ͬͨ w

    ͱ͍ͬͨ͜ͱ͸ͳ͘ͳΓɺ੾Γ෼͚͕Ͱ͖ΔΑ͏ʹͳͬͨ
  31. ͪΐͬͱ·ͱΊͯΈΔ w αʔϏε։ൃ͸ਐΉ w &&ςετ΋ରԠ͍ͯ͘͠ඞཁ͕͋Δ w ์ஔ͓ͯ͘͠ͱϝϯςφϯεෆೳʹͳΓ͔Ͷͳ͍ ʮαʔϏε։ൃͱڞʹาΉʯ

  32. ͪΐͬͱ༨ஊ w ౰વͰ͕͢ɺ4FMFOJVN͸ສೳͰ͸ͳ͍ w ʮԿΛ֬ೝ͍͔ͨ͠ʯΛ໌֬ʹ্ͨ͠Ͱɺద੾ͳ πʔϧΛબ୒͢Δ΂͖

  33. ࣮ࡍʹ͋ͬͨ࿩ ʮ.JYFE$POUFOUͷݕ஌Λ4FMFOJVNͰ΍Γ͍ͨʯ ʮ4FMFOJVNҎ֎ͷํ๏͋Δͱࢥ͏Αʯ IUUQTXXXKJUCJUDPNTTMDIFDL

  34. 4FMFOJVNରԠ

  35. ࿩͢͜ͱ w ࣮ફಋೖ͢Δ্ͰϋϚͬͨϙΠϯτ w XBJUͷѻ͍ w QSPpMFͷઃఆ w ฒྻ࣮ߦ࣌ͷΤϥʔ w

    ʹରԠͯ͠Կ͕มΘ͔ͬͨ
  36. ͜Ε͚ͩม͑Ε͹ΠέΔʂ w HFDLPESJWFSͷύεઃఆ w 4FMFOJVN8FCESJWFS6QEBUF w 'JSFGPYόʔδϣϯΞοϓ ˞αϯϓϧίʔυɿ3VCZ ESJWFS4FMFOJVN8FC%SJWFSGPS pSFGPY

    NBSJPOFUUFUSVF
  37. ͦΜͳΘ͚ͳ͔ͬͨɾɾɾ

  38. นͦͷ̍d8BJUͷѻ͍d w Ҏલ͸#BTF1BHFʹ*NQMJDJUXBJU࢓ࠐΊ͹ɺ໰୊ͳ ͔ͬͨ w ESJWFSNBOBHFUJNFPVUTJNQMJDJU@XBJUYY w &YQMJDJUXBJUΛ࢖ͬͨํ͕҆ఆ͢Δ

  39. นͦͷ̍d8BJUͷѻ͍d w #BTF1BHFʹ&YQMJDJUXBJUΛఆٛ w ֤1BHF$MBTTʹΤϨϝϯτͷΈ౉͢Α͏ʹ͢Δ w 5FTU$BTF͔Βݺͼग़͢ w ࣗը໘ભҠ΍΢Οϯυ΢Ҡಈ͸ʁ w

    ٽ͘ٽ͘4MFFQ
  40. นͦͷd1SPpMFͷઃఆd w HFDLPESJWFSʹͳͬͯɺQSPpMFͷઃఆํ๏มΘͬͨ #FGPSF QSPpMF4FMFOJVN8FC%SJWFS'JSFGPY1SPpMFOFX  QSPpMF<HFOFSBMVTFSBHFOUPWFSSJEF>TPNFVTFSBHFOU ESJWFS4FMFOJVN8FC%SJWFSGPS pSFGPY QSPpMFQSPpMF

    "GUFS QSPpMF4FMFOJVN8FC%SJWFS'JSFGPY1SPpMFOFX  QSPpMF<HFOFSBMVTFSBHFOUPWFSSJEF>TPNFVTFSBHFOU QSPpMF#BTFFODPEF QSPpMFUP@T  DBQBCJMJUJFT4FMFOJVN8FC%SJWFS3FNPUF$BQBCJMJUJFTpSFGPY NBSJPOFUUF USVF pSFGPY@PQUJPOT\[JQ\QSPpMFQSPpMF^^  ESJWFS4FMFOJVN8FC%SJWFSGPS pSFGPY EFTJSFE@DBQBCJMJUJFTDBQBCJMJUJFT
  41. นͦͷd1SPpMFͷઃఆd w HFDLPESJWFSͷ'JSFGPYΦϓγϣϯ͔Βઃఆ w ؔ࿈ w IUUQTHJUIVCDPNNP[JMMBHFDLPESJWFSpSFGPYDBQBCJMJUJFT w IUUQTHJUIVCDPNNP[JMMBHFDLPESJWFSJTTVFT JTTVFDPNNFOU

  42. นͦͷdฒྻ࣮ߦ࣌ͷΤϥʔd w ͋Δ͋Δʁ w ϩʔΧϧͰͷ୯ମ࣮ߦ͸໰୊ͳ͍͕ɺ$*͔Βͷฒྻ࣮ߦʹͨ͠ॠؒ ʹ͚͜·͘Δ w ࣮ࡍʹ͋ͬͨ࿩ w ϩʔΧϧͰಈ͔͢෼ʹ͸໰୊ͳ͍

    w $*αʔό͔Βͷ୯ମ࣮ߦ΋໰୊ͳ͍ w +FOLJOT͔Βͷฒྻ࣮ߦͨ͠ࡍʹϒϥ΢β͢Β্ཱ͕ͪΒͳ͍
  43. นͦͷdฒྻ࣮ߦ࣌ͷΤϥʔd w +FOLJOT͔Βग़ΔΤϥʔϩά w 1SPDFTTMFBLFEpMFEFTDSJQUPST w +FOLJOTͷ໰୊ɾɾɾͰ͸ͳ͔ͬͨ w 'JSFGPYͷฒྻ࣮ߦͩͱϒϥ΢β͢Βىಈ͠ͳ͔ͬͨ w

    'JSFGPYʹԼ͛ͯɺฒྻ࣮ߦͨ͠Βɺղܾ ˞HFDLPESJWFS
  44. นͦͷdฒྻ࣮ߦ࣌ͷΤϥʔd w ฒྻ࣮ߦͷ೉͠͞ w ݪҼ͕Ͳ͜ʹ͋Δͷ͔ɾ੾Γ෼͚͕೉͍͠ w +FOLJOTͷΤϥʔʹݟ͑Δ͕ɺ'JSFGPYͷόʔδϣϯ͕Լ͛ͯղܾ w $*4FMFOJVNHFDLPESJWFSϒϥ΢βFUDશͯΛٙΘͳ͍ͱ͍͚ ͳ͍

  45. ͓·͚d4FMFOJVN͕ىಈ͠ͳ͍d w MPDBMIPTU͕ۭ͍͍ͯΔ͔֬ೝ w 'JSFGPYىಈ࣌ʹ%&'"6-5@1035Λࢦఆ IUUQXXXSVCZEPDJOGPHFNTTFMFOJVNXFCESJWFS4FMFOJVN8FC%SJWFS'JSFGPY4FSWJDF

  46. ʹ্͛ͯมΘͬͨ͜ͱ

  47. ಛʹେ͖ͳมԽ͸ͳ͍ w ͍͢͝଎͘ͳͬͨΘ͚Ͱ͸ͳ͍ w ҆ఆੑ͸ؾ࣋ͪগ্͕ͬͨ͠ʁ w ݩʑɺ଎౓ͱ҆ఆੑ͸ͦΕͳΓʹอূ͞Ε͍ͯΔ w ଎͍ͤͨ͘͞ͳΒɺฒྻ౓্͛ͨํ͕࣮֬

  48. Ͱ΋ɾɾɾ w Ͳ͔͜ͷλΠϛϯάͰόʔδϣϯΞοϓରԠ͸ඞཁ w ܥͷ··ӡ༻Λଓ͚ɺ์ஔ͠ɺϝϯςφϯεෆೳɾɾ ͳΜ͍ͯ͏ࣄଶ͸ى͜Δ͔΋͠Εͳ͍ w ࠓ΍Δ΂͖͔ͱฉ͔ΕͨΒɺɺɺ w ผʹࠓ΍Βͳͯ͘΋͍͍ͱࢥ͏

  49. ͪΐͬͱ·ͱΊͯΈΔ w 4FMFOJVNରԠ͸ɾɾɾ w ࠓ΍Βͳͯ͘΋Α͔ͬͨʢҰٳͷ৔߹ʣ w ରԠͨ݁͠ՌͷϝϦοτ͕ݟग़ͤͳ͍ w ϋϚͬͨϙΠϯτΛ͍͔ͭ͘঺հ͠·ͨ͠ w

    8BJUͷѻ͍ w 1SPpMFͷઃఆ w ฒྻ࣮ߦͷΤϥʔ͸શͯΛٙͬͨ΄͏͕͍͍
  50. ·ͱΊɿҰٳDPNͷ&&ςετࣄ৘ w ༧໿ϩάΠϯͷ֬ೝ͕ϝΠϯ w ϢʔβʔʹՁ஋Λಧ͚ΔͨΊ w αʔϏεͷࠜװͱͳΔػೳΛ֬ೝ͢Δ w ਐΉαʔϏε։ൃͱڞʹาΉ w

    ΩϟονΞοϓ͠ͳ͍ͱ͍ͣΕɺϝϯςφϯεෆೳͳΜͯ͜ͱʹɾɾɾ w 4FMFOJVNରԠͷϝϦοτ͸ͦ͜·Ͱײ͡ͳ͔ͬͨ w Ͱ΋ɺͲ͔͜ͰରԠ͢Δඞཁ͸͋Δ͔΋ɾɾɾ
  51. ࠷ޙʹɿ&&ςετܧଓӡ༻ͷϙΠϯτ w ҆ఆੑ w ΦΦΧϛগ೥ʹ͠ͳ͍͜ͱ ϦτϥΠॲཧೖΕΔͳΓ͢Δ  w ٕज़తΩϟονΞοϓ όʔδϣϯΞοϓʁ

     w ϝϯςφϯεੑ w 1BHF0CKFDU%FTJHO1BUUFSO΋ͦ͏͕ͩɺίʔυΛॻ্͘Ͱͷجຊతͳ෦෼΋஫ҙ w ςετίʔυमਖ਼ํ๏ͳͲͷ৘ใڞ༗΋͢Δ w ଎౓ w ฒྻ࣮ߦ͕؊ ݁ہɺ͜ͷ̏ͭ
  52. ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠