Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
KARTE開発にマルチブラウザテストを導入・運用した話
Search
Daikichi
October 27, 2016
Technology
1.9k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
KARTE開発にマルチブラウザテストを導入・運用した話
Daikichi
October 27, 2016
Other Decks in Technology
See All in Technology
TinyGoでオブザーバビリティ?OpenTelemetryはTinyGoで使えるのか / Is OpenTelemetry available in TinyGo environment?
ymotongpoo
2
140
トークン化預金DCJPYの取り組みと活用ユースケース
finengine
0
170
大型犬好きによるPugの紹介
yamanoku
1
160
Gemini Intelligence 入門 ― AppFunctions と Gemini Nano
takuroabe
0
300
Rustuna: Rustによる高速なOptuna実装
pfn
PRO
0
200
「Docker Desktop不要の時代」は 来たのか?
ueponx
0
840
"優秀な誰か"の下位互換にならないために
yut0naga1_fa
1
1.8k
実践!Cloud Run ハンズオン!! / Cloud Run handson
y0hgi
2
300
ソフトウェア ファクトリー - 再現性のあるソフトウェアの工場づくり / Software factory
iktakahiro
7
5.1k
パスキーの自動テストはどこまでいけるのか
teamlab
PRO
0
280
Persisting Massive Data with Rails ~Designing for 60 billion rows, and fighting the bottlenecks~ Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
0
740
DGX Spark でどこまでハッキングができるのか?
kash1064
3
1.4k
Featured
See All Featured
Music & Morning Musume
bryan
48
7.4k
Become a Pro
speakerdeck
PRO
31
6.3k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
Automating Front-end Workflow
addyosmani
1369
210k
Building Better People: How to give real-time feedback that sticks.
wjessup
371
20k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
RailsConf 2023
tenderlove
30
1.6k
Abbi's Birthday
coloredviolet
4
10k
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
950
Transcript
KARTE։ൃʹϚϧνϒϥβςετΛ ಋೖɾӡ༻ͨ͠
େ٢(@sdaikichi) ‘14ଔ(จܥ) 3 2015/6 ΑΓPLAIDʹJOIN όοΫΤϯυɾϑϩϯτΤϯυͲͪΒɻ গ͠લCXνʔϜͰηʔϧεΤϯδχΞͱͯ͠Ϣʔβʔαϙʔτ ਐḿɿτϨʔφʔϨϕϧ 24 ั·͑ͨ
111ඖ ࠷ۙPokemon Go Plusಋೖ Έɿຫੑతͳ΄͠ͷ͢ͳෆɻϛχϦϡͷ͋Ί͕͋ͭ·Βͳ͍ɻ͋ͱߴ CPͷϙέϞϯ͕حతʹGETͰ͖ͨΧΠϦϡʔ͚ͩͳͷͰδϜઓ͕৺ͱͳ ͍ɻΧϏΰϯҰԠ࣋ͬͯΔ͚Ͳݸମ͕͍ΜͩΑͳɾɾɾ࠷ۙφογʔ
http://tech.plaid.co.jp/ PLAID ENGINEER BLOG 40௨ΓҎ্ͷࣗಈϚϧνϒϥβςετΛSelenium x CircleCI x BrowserStackͰ࣮ݱ͢Δ http://tech.plaid.co.jp/multi-browesr-test/
ԿނϚϧνϒϥβςετΛʁ
Α͘Θ͔ΔKARTEͷ͘͠Έ Tracking Analyze Delivery ݁ߏ͍ ٬Action
None
ɾ͓٬༷αΠτʹλάΛ ຒΊࠐΜͰ͍ͨͩ͘ɻ ɾCDNܦ༝ͰJSϑΝΠϧΛϩʔυɻ KARTEαʔόʹσʔλΛૹΔɻ
ɾ͓٬༷αΠτʹλάΛ ຒΊࠐΜͰ͍ͨͩ͘ɻ ɾCDNܦ༝ͰJSϑΝΠϧΛϩʔυɻ KARTEαʔόʹσʔλΛૹΔɻ ίϨ
࣮ߦڥ=͓٬༷αΠτʹདྷ๚͞ΕΔํશһ
࣮ߦڥ=͓٬༷αΠτʹདྷ๚͞ΕΔํશһ બͳ͍
IE8ʁ Androidඪ४ϒϥβʁ Operaʁ
IE8ʁ Androidඪ४ϒϥβʁ Operaʁ બͳ͍ ʢ٬ରʹ͢Δ͔Ͳ͏͔ผʣ
࠷ۙۤ͠ΊΒΕͨͱ͜Ζ IE8ͷόά document͕XHTML͔Ͳ͏͔ͷఆ document.contentType (Safari, IEࢮ)
ϚϧνϒϥβςετɺΒͳ͖Ό
BrowserStack https://www.browserstack.com/ ϚϧνϒϥβςετͷσϑΝΫτʁ Live, Automate, Screenshot…
BrowserStack Automate JS TestingʢϢχοτςετʣɺSelenium TestingʢE2Eςετʣ ʹରԠ ݱঢ়ͷςετίʔυΛม͑Δඞཁ͕͋·Γͳ͍ CircleCIͱ࿈ܞ(ͱݴ͏΄ͲେڼͰͳ͍)͢Δʹ͋ͨͬͯυ Ωϡϝϯτ͋Γ
ଟ࠼ͳରԠϒϥβɾOS
ςετதͷࡱӨ ࣮ࡍͷಈը
ಋೖɾӡ༻ɾςετέʔε
Javascript Testing (Unit Test)
Unit Test BrowserStack Runner ͱ͍͏npmύοέʔδΛར༻ JSONϑΝΠϧʹTest FileɺTest Frameworkςετ࣮ߦϒϥβΛࢦఆ
JSONϑΝΠϧΛ͚Εɺ༻్ͷҧ͏ςετΛ࣮ߦ͢Δ͜ͱ͕Ͱ͖Δɻ KARTEͰɺ٬ରϒϥβͱ٬ର֎ϒϥβͷςετΛ͚ͯߦ͍ͬͯΔɻ
Trackingର֎ϒϥβͷςετ
Trackingର֎ϒϥβͷςετ ର֎ϒϥβͰTrackॲཧΛߦ͏instance࡞ΒΕͳ͍ ͔ͳΓૣ͍ஈ֊Ͱreturn͞ΕΔ ʮͳΜͰ͍͍͔ΒΤϥʔ͕ى͖ͯͳ͍͔ʁʯ window.onerrorͷར༻
Selenium Testing (E2E Test)
E2E Test ٬ΞΫγϣϯͷ৴ͦͷΫϦοΫͳͲɺΤϯυϢʔβʔ ͷମݧ෦ʹؔΘΔςετ طଘͷςετίʔυ͕͋Δ߹ɺ webdriverΛ࡞Δ࣌ʹ BrowserStackͷαʔόΛ͏Α͏ʹॻ͚ͩ͘ɻ
CI্Ͱͷૢ࡞ ʢCIͷʣϩʔΧϧʹKARTEͷmockαʔόͱళฮΛͨ͠αʔόΛ ཱͯͯɺళฮʹΞΫηεͯ͠٬ΞΫγϣϯͷ৴͕ߦΘΕΔ ͔Λςετ͢Δɻ BrowserStack͕LocalʹΞΫηεͰ͖ΔΑ͏ʹ͢Δඞཁ͕͋Δɻ BrowserStackLocal ͱ͍͏όΠφϦ͕͞Ε͍ͯΔͨΊɺςετ ࣌ʹ࣮ߦ͢Δɻ
ςετέʔε ٬ΞΫγϣϯ͕ਖ਼͘͠දࣔ͞Ε͍ͯΔ͔ʁ ݩʑͷϖʔδͷཁૉɾಈ࡞Λյ͍ͯ͠ͳ͍͔ʁ(IE8ͷল) XHTMLϖʔδ ϒϥβͷconsoleʹΤϥʔ͕ग़͍ͯͳ͍͔Λ֬ೝ͢Δ ʢChrome DriverͷΈՄೳʣ
ϋϚͬͨͱ͜Ζ
͍ʂ Selenium Testͱʹ͔͕͔͔࣌ؒ͘Δ ίϯςφҰͭͰɺςετΛฒྻ࣮ͯ͠ߦ͠ɺଞͷCIΛअ ຐ͠ͳ͍Α͏ Ϧʔδϣϯͷʁ
ϞόΠϧ όϦΤʔγϣϯͪΐͬͱগͳΊ ΤϛϡϨʔλͰ࣮ߦ͞ΕΔͨΊɺͦͷىಈʹࣦഊͯ͠ςε τ͕མͪΔ͜ͱ͕͋Δɻͪ͜ΒͰͲ͏͠Α͏ͳ͍ͨΊ CIrcleCI্ͰϦτϥΠ͢ΔshellΛॻ͍ͨΓͯ͠ରॲ ࣮ػςετ͕࠷࣮ۙ͞ΕͨΒ͍͕͠ɺ͜ΕΤϛϡϨʔ λҎ্ʹىಈ͕ࣦഊͨ͠Γɺಈը͕ࡱΕͳ͍༷ͩͬͨΓ ͯ͠ಋೖݟૹ͍ͬͯ·͢
CircleCIͷΩϡʔͱBrowserStackͷΩϡʔ webdriverͷquit()ΛߦΘͳ͍ͱɺBrowserStackʹΩϡʔ Γଓ͚Δ CircleCIͰςετ͕։࢝͠ɺ్தͰCIͷbuildΛΩϟϯηϧ͠ ͨΓͯ͠BrowserStackʹΩϡʔ͕Δɻ BrowserStackͷܖϓϥϯʢޙड़ʣʹΑͬͯࢮ׆ ɾɾɾ
http://tech.plaid.co.jp/ PLAID ENGINEER BLOG
ίετύϑΥʔϚϯε
ςετฒྻɾҰͷ্ݶ࣌ؒͰܾ·Δ
ίετύϑΥʔϚϯε ϛογϣϯΫϦςΟΧϧͰͳ͚Εɺmaster(develop)ʹର͠ ͯͨ·ʹΒͤΔɺͳͲͷ͍ํͰҰ൪খ͍͞ϓϥϯ͔Βॳ ΊΔͱ͍͍͔ ฐࣾRapid Plus(10ฒྻ/1ฒྻʹ͖ͭ4࣌ؒ)Ͱ͕͢ɺϦϙδτ ϦͷPush͕ूத͢Δͱͨ·ʹ্ݶʹୡ͢Δ͜ͱ͕͋Γ· ͢ɻ ͜Ε͔Βςετέʔε૿͑ͨΓ͢Δ͜ͱΛߟ͑ΔͱϓϥϯҠ ߦݕ౼தͰ͢ɻ
ࠓޙ
ࠓޙ ςετέʔεͷॆ࣮ ςετ࣌ؒॖ ScreenshotػೳΛར༻ͯ͠ɺ֤ϒϥβຖʹ٬ΞΫγϣϯ ͷεΫγϣΛࡱͬͯݟൺΔʢςετ͔KARTEͷػೳʁʣ