Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GitHub ActionsでWebDriverどこまでやるの?
Search
Toda Hiroshi
October 16, 2019
Programming
1
600
GitHub ActionsでWebDriverどこまでやるの?
GitHub ActionsでWebDriverどこまでやるの? @ GitHub Actions Meetup Tokyo β 2019年10月16日
Toda Hiroshi
October 16, 2019
Tweet
Share
More Decks by Toda Hiroshi
See All by Toda Hiroshi
OpenAPI(Swagger)によるWebDriverの記述と、この星の上のさまざまな物への実験的なWebDriver実装
hiroshitoda
0
1.1k
Other Decks in Programming
See All in Programming
Online-Dokumentation, die hilft: Strukturen, Prozesse, Tools
ahus1
0
100
Go の GC の不得意な部分を克服したい
taiyow
3
840
短期間での新規プロダクト開発における「コスパの良い」Goのテスト戦略」 / kamakura.go
n3xem
2
180
Асинхронность неизбежна: как мы проектировали сервис уведомлений
lamodatech
0
970
return文におけるstd::moveについて
onihusube
1
1.3k
103 Early Hints
sugi_0000
1
260
各クラウドサービスにおける.NETの対応と見解
ymd65536
0
180
Webエンジニア主体のモバイルチームの 生産性を高く保つためにやったこと
igreenwood
0
340
Beyond ORM
77web
8
1.2k
見えないメモリを観測する: PHP 8.4 `pg_result_memory_size()` とSQL結果のメモリ管理
kentaroutakeda
0
720
Androidアプリのモジュール分割における:x:commonを考える
okuzawats
1
190
iOS開発におけるCopilot For XcodeとCode Completion / copilot for xcode
fuyan777
1
110
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
GraphQLとの向き合い方2022年版
quramy
44
13k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Unsuck your backbone
ammeep
669
57k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.6k
Rails Girls Zürich Keynote
gr2m
94
13k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
Making Projects Easy
brettharned
116
6k
Music & Morning Musume
bryan
46
6.2k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Optimising Largest Contentful Paint
csswizardry
33
3k
Transcript
(JU)VC"DUJPOTͰ 8FC%SJWFSͲ͜·ͰΔͷʁ ݄ ށా
ࣗݾհ • ށా ʢͱͩ ͻΖ͠ʣ !IJSPTIJUPEB • ੜ·Ε ࡀ •
σΟʔϓϥʔχϯάͱ"QQJVNΛར༻ͨ͠ ςετࣗಈԽ4BB4ʮ.BHJD1PEʯӡӦʹɺ ͔Βͪ·ͪ·ɺ͔Βͦͦ͜͜ ࢀՃ͍ͯ͠·͢ɻ • ʹʮ4FMFOJVN࣮ફೖʯ ʹ ʮΤΩεύʔτ͕ڭ͑Δ4FMFOJVN࠷લઢʯ ڞஶ͠·ͨ͠ɻͥͻ͓ങ͍ٻΊ͍ͩ͘͞ʂ
˞.BHJD1PEͷ͝հ˞ • ʮ.BHJD1PEʯɺಋೖͷෑډ͕ߴ͘ͳΓ͕ͪͳ ωΠςΟϒΞϓϦͷࣗಈςετΛ ͔ΜͨΜʹ࢝ΊΒΕΔςετࢧԉαʔϏεͰ͢ɻ • 8FC%SJWFS"1*ʹ४ڌͨ͠ωΠςΟϒΞϓϦࣗಈૢ࡞πʔϧ ʮ"QQJVNʯΛར༻͍ͯ͠·͢ɻ • σΟʔϓϥʔχϯάΛ׆༻ͨ͠ΞϓϦ6*ͷࣗಈൃݟ
8FC(6*্Ͱͷςετ߲࡞ػೳΈ߹Θͤͯɺ ςετ߲දΛ࡞ΔΑ͏ͳ؆୯ͳૢ࡞Ͱ ࣗಈςετͷ͘͠ΈΛ࡞Ε·͢ɻ • ωΠςΟϒΞϓϦ։ൃͰΑ͘ΘΕΔ ଞͷαʔϏεͱͷ࿈ܞॆ࣮͖ͯ͠·ͨ͠ɻ • IUUQTNBHJDQPEDPN
ࠓ͢͜ͱ ͿͬͪΌ͚ͳΜͰͰ͖ͦ͏ͳ(JU)VC"DUJPOTɺ ࣮ࡍͲ͜·Ͱ͑Δ͔Λ 8FC%SJWFSઢʢಛʹ"QQJVNઢʣͰௐͨͷͰ ·ͱΊ͓ͯ͠͠·͢ɻ (JU)VC"DUJPOT͕ಈ͘ج൫ (JU)VC"DUJPOTͰ࠷ॳ͔Β͑ΔιϑτΣΞ
(JU)VC"DUJPOT্Ͱͷ"QQJVNͷ׆༻ͱ /FTUFE7JSUVBMJ[BUJPOͷน
(JU)VC"DUJPOT͕ಈ͘ج൫
(JU)VC"DUJPOT͕ಈ͘ج൫ • ϔϧϓΛಡΈ·͠ΐ͏ɻ • l(JU)VC"DUJPOTͷԾڥz IUUQTIFMQHJUIVCDPNKBBSUJDMFTWJSUVBMFOWJSPONFOUTGPSHJUIVCBDUJPOT • ށా͞ΜΔؾ͋ΔΜͰ͔͢ʁʁʁ
(JU)VC"DUJPOT͕ಈ͘ج൫ • l-JOVY͓Αͼ8JOEPXTͷ(JU)VC"DUJPOTԾڥɺ (JU)VC"DUJPOTSVOOFS͕Πϯετʔϧ͞Εͨ .JDSPTPGU"[VSFͷ4UBOEBSE@%4@WԾϚγϯ্ʹ ϗετ͞Ε͍ͯ·͢ɻz • W͡Όͳ͍ͷͰ/FTUFE7JSUVBMJ[BUJPOʹରԠ͍ͯ͠·ͤΜɻ • ͭ·Γɺ͜ͷڥ্ʹԾϚγϯ࡞Ε·ͤΜɻ
• lNBD04Ծڥͷϗετʹ.BD4UBEJVNΛ༻͍ͯ͠·͢ɻz • NBD04ͷ*BB4ͷதͰɺݱ࣌Ͱ͍ͪΜϚγͳͱ͜ΖͰ͢ɻ • .BD࣮ػΛିͯ͘͠Ε·͢ʢCBSFNFUBMͬͯ͜ͱͰ͢Ͷʣɻ • ͭ·Γɺ͜ͷڥ্ʹԾϚγϯΛ࡞Ε·͢ɻ
(JU)VC"DUJPOT͕ಈ͘ج൫ ϔϧϓʹࡌ͍ͬͯͳ͍ਂ۷Γใ • -JOVYɾ8JOEPXTڥͷϦιʔεׂΓͯ υΩϡϝϯτهࡌͷͱ͓Γ W$16ɺ(#ϝϞϦʔ Ͱ͢ɻ • NBD04ڥʁʁʁ ௐͯΈ·ͨ͠ʂ
• Ձ֨දʹ lDPSFT (#zͱ͋Δ͕ʜʜ • $16*OUFM9FPO&W!()[ DPSFUISFBE • ϝϞϦʔ(# • ͜Εͬͯچ.BD1SPͰʁʁʁ ←ͦΕΰϛശ
NBD04ڥ͓ಘ͔ʁ • ݱঢ়ɺ.BD4UBEJVN8FC͔Βਃ͠ࠐΉͱ .BD.JOJͷ݄୯Ґ՝ۚϓϥϯ͔͠બ·ͤΜɻ • .BD1SPΛΘͤͯΒ͑Δ͏͑ʹ୯Ґ՝ۚͷ (JU)VC"DUJPOT͓ಘͳͷͰʁ • ͨ·ͨ·ށా͕Ҿ͍ͨͷ͕.BD1SP͚͔ͩͬͨͩ͠Ε·ͤΜɻ •
ϕʔλظؒऴΘͬͨΒࠓޙͲ͏ͳΔͷ͔ͳɻɻɻ ←͜͏͍͏ͭʹϚϯτ͞ΕͯΔͷ͔ͳ……
(JU)VC"DUJPOTͰ ࠷ॳ͔Β͑ΔιϑτΣΞ
Ծڥ্ʹͱͱೖ͍ͬͯΔιϑτΣΞ • ϔϧϓΛಡΈ·͠ΐ͏ɻ • l(JU)VC"DUJPOTͷԾڥͰͷιϑτΣΞz IUUQTIFMQHJUIVCDPNKBBSUJDMFTTPGUXBSFJOWJSUVBMFOWJSPONFOUTGPS HJUIVCBDUJPOT • ށా͞ΜΔؾʢ
Ծڥ্ʹͱͱೖ͍ͬͯΔιϑτΣΞ "QQJVNઢ • Ͳͷڥʹ"OESPJE4%,͕ೖ͍ͬͯ·͢ɻ • NBD04Πϯελϯεʹ ෳόʔδϣϯͷ9DPEF͕Πϯετʔϧ͞Ε͍ͯͯ δϣϒ࣮ߦ࣌ͷΓସ͑༰қʹՄೳʹͳ͍ͬͯ·͢ɻ • YDWFSTJPOͱ͍͏ఆ൪πʔϧͰ࣮ݱ͞Ε͍ͯ·͢ɻ
• ݱ࣌Ͱ9DPEFϕʔλ൛͕ೖ͍ͬͯ·͢ɻ
Ծڥ্ʹͱͱೖ͍ͬͯΔιϑτΣΞ ͪΐͬͱҧ͏ઢ • Ͳͷڥʹ /&5DPSF4%,͕ೖ͍ͬͯͨΓɺ +%,͕ "[VM;VMV0QFO+%,ͩͬͨΓɺ ΄ΜͷΓͱ.JDSPTPGUͷϙϦγʔΛײͤ͡͞·͢ɻ • NBD04ڥʹ7JTVBM4UVEJPGPS.BDೖ͍ͬͯͯ
9BNBSJOͷϏϧυ͕ՄೳͳΑ͏Ͱ͢ɻ • ΩϟογϡࡁΈͷ%PDLFSίϯςφʔΠϝʔδ͕ ͍͔ͭ͘อ࣋͞Ε͍ͯ·͢ɻ ͜ͷΩϟογϡ͕ར͘δϣϒͳΒߴʹॲཧͰ͖ΔͰ ͠ΐ͏ɻ
(JU)VC"DUJPOT্Ͱͷ "QQJVNͷར༻ͱ /FTUFE7JSUVBMJ[BUJPOͷน
(JU)VC"DUJPOT্Ͱͷ"QQJVN • ࠓͷΠϕϯτʹ ʮ͜͏ͨ͠Β4FMFOJVN"QQJVNಈ͍ͨΑʯ ٧Ί߹ΘͤͰ࣋ͬͯདྷΕྑ͍͔ͳʙͱ ҆қʹߟ͑ͯͨΒ࣍ʑͱઌΛӽ͞Εͯ͠·ͬͨΞΞΞΞ • ݄ • (JU)VC"DUJPOTͰ
8JOEPXT*&ͱ .BD4BGBSJΛ TFMFOJVNXFCESJWFS Ͱಈ͔͢ IUUQTRJJUBDPNNJ[DIJJUFNTDEGCBGB • ݄ • (JUIVC "DUJPOT "QQJVNͰJ1IPOF4JNVMBUPSΛಈ͔͢ IUUQTRJJUBDPNUBLFZBYJUFNTDEB • ݄ • (JUIVC "DUJPOT "QQJVNͰ"OESPJE&NVMBUPSΛಈ͔͢ IUUQTRJJUBDPNUBLFZBYJUFNTCGCBBEE
"OESPJEͱNBD04 • "OESPJE4%, (JU)VC"DUJPOTͷͯ͢ͷڥʹೖͬͯ·͕͢ɺ "OESPJEΤϛϡϨʔλʔΛೖΕͯಈ͔ͤΔͷ ݱ࣌ͰNBD04ڥ͚ͩͰ͢ɻ • 8JOEPXT-JOVYڥ͕ /FTUFE7JSUVBMJ[BUJPOʹରԠ͍ͯ͠ͳ͍͔ΒͰ͢Ͷɻ •
݁Ռɺ J04γϛϡϨʔλʔ"OESPJEΤϛϡϨʔλʔಈ͘ ൺֱత҆ՁͳCBSFNFUBMڥͱͯ͠ɺ NBD04ڥͷଘࡏײ͕େ͖͘ͳ͍ͬͯ·͢ɻ
(JU)VC"DUJPOTͱ%PDLFS • (JU)VC"DUJPOT TFSWJDFT ͱ͔ VTFT ͱ͔Ͱ ެ։%PDLFSΠϝʔδΛར༻Ͱ͖Δ͡Όͳ͍Ͱ͔͢ɺ ͋ͷลΓ׆༻ͯ͠"QQJVNྑ͍ײ͡ʹͳΒͳ͍ͷʁʁ
8FC%SJWFSͱ%PDLFS • ͔ͨ͠ʹɺ 4FMFOJVNͳͲͷ8FC%SJWFSΫϥΠΞϯτΛར༻ͨ͠ 8FCϒϥβʔૢ࡞ɾςετͷࣗಈԽͰ %PDLFSͷར༻ͱͯ༗ޮͰ͢ɻ • ౾ࣝ4FMFOJVNެࣜͷ%PDLFSΠϝʔδ͔Β͋Γ·͢ɻ • $JSDMF$*ͷ
DJSDMFDJOPEFMBUFTUCSPXTFST ͳΜ͔ (JU)VC"DUJPOTͰ ΘΓͱؾܰʹ͑ΔΑͶɺ ͱ͍͏هࣄ͕Εͷ࣌Ͱެ։͞Ε͍ͯ·͢ɻ IUUQTRJJUBDPNPLJUBOJUFNTCBEDEB
"QQJVNͱ%PDLFS • ͦͷ͍Ͱɺ"QQJVNͰ%PDLFSͬͯ ྑ͍ײ͡ʹ͍ͨ͠ͳɺͱͳΔͷਓɺ͔͠͠ɻ • ʮ"OESPJEڥΛ%PDLFSίϯςφʔʹͨ͠ʯ ͱ͍͏ͷͷଟ͘ɺ͋͘·Ͱ "OESPJEͷެࣜΤϛϡϨʔλʔڥΛ %PDLFSίϯςφʔʹͨ͠ͷͰ͢ɻ /FTUFE7JSUVBMJ[BUJPOඇରԠͷ-JOVYԾڥͰ
ಈ͔͢͜ͱ͕Ͱ͖·ͤΜɻ೦ɻɻɻ • "QQJVNNBD04ڥΛ͍͍͖ͯ͠·͠ΐ͏ʂ
ʲࢀߟʳ"OESPJEΤϛϡϨʔλʔೖΓͷ%PDLFSίϯςφʔ • CVEUNPEPDLFSBOESPJE • ʹϝϧΧϦͰͷେنͳར༻ࣄྫ͕ެ։͞Ε·ͨ͠ɻ • IUUQTUFDINFSDBSJDPNFOUSZ • ίϯςφαΠζʙ(#͘Β͍ɺ (JU)VC"DUJPOT্Ͱ͘Β͍ͰQVMMͰ͖·͢ɻ
• "1*όʔδϣϯ͝ͱʹΠϝʔδ͕͋Γɺ࣮༻ੑ͕ߴ͍Ͱ͢ɻ • CJUSJTFJPEPDLFSBOESPJE • ΈΜͳେ͖#JUSJTFͰ࣮ࡍʹΘΕ͍ͯΔ"OESPJEίϯςφʔɻ • Ί΅͍͠"1*όʔδϣϯશ෦ೖΓʹ͍ͯ͠ΔͷͰΫιॏ͍ɺ ίϯςφαΠζʙ(#͘Β͍ɻ ΩϟογϡͰ͖ͳ͍ڥͰ࣮༻ʹ͑·ͤΜɻ
ʲࢀߟʳ"OESPJEΤϛϡϨʔλʔΛΘͳ͍ίϯςφʔ • BOCPY IUUQTBOCPYJP • "OESPJEΛ-JOVY্ͷίϯςφʔ Ћͱͯ͠ಈ͔͢͜ͱΛ ඪͱͨ͠ϓϩδΣΫτͰ͢ɻ • ίϯςφʔٕज़ʹ-9$Λ࠾༻͍ͯ͠·͢ɻ
• ݪཧ্ɺ/FTUFE7JSUVBMJ[BUJPOඇରԠͷԾϚγϯ্Ͱ ܰշʹಈ࡞͠·͢ɻ (JU)VC"DUJPOTͰ-JOVYΠϯελϯε্Ͱ͑Δ͔ʜʜʁ • ͷ"84SF*OWFOUͰ൸࿐͞Εͨ /%,ʹґଘͨ͠ΞϓϦΛ"Πϯελϯε্Ͱࣗಈૢ࡞͢ΔσϞͰ ج൫ͱͯ͠ΘΕ͍ͯͨΑ͏Ͱ͢ɻ • "QQJVN͔Βૢ࡞Ͱ͖·͕͢ෆ҆ఆɻɻɻ
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ