2019/11/30に開催されたシステムテスト自動化カンファレンス 2019 での登壇資料です https://testautomationresearch.connpass.com/event/144768/
,BSBUFʹΑΔ։ൃϓϩηεվળͷࣄྫͱ;JQLJOͱ࿈ܞͨ͠ϚΠΫϩαʔϏεͷোݕͷΈ-*/&גࣜձࣾߴڮ ܄γεςϜςετࣗಈԽΧϯϑΝϨϯε
View Slide
ࣗݾհ
*TBP5BLBIBTIJ[email protected])%*54&54PGUXBSF&OHJOFFSJO5FTU
͓Θͼ
ൃද͕࣌ؒͨΓ·ͤΜͰͨ͠!
https://speakerdeck.com/line_developers/build-self-organized-team-through-test-automation-with-karate
https://speakerdeck.com/line_devday2019/failure-detection-of-microservices-with-test-and-zipkinλΠτϧࣅͯΔ͚Ͳத ओҧ͍·͢
ຊͷ ,FZ.FTTBHF
,FZ.FTTBHFςετͷׂ࣭อূʜ͚ͩ͡Όͳ͍ʂ
,FZ.FTTBHFςετΛॻ͘ΈΜͳ͕ϋοϐʔͳঢ়ଶʹ͠Α͏2"1SPEVDU0XOFS%FWFMPQFS
"HFOEB "1*ςετͯ͠Β͑ͳ͍ "1*ςετͷϝϯςେม ,BSBUFΖ͏ͥ -JWF$PEJOH ςετϨϙʔτΛͬͱ͍͘͢͠Α͏ͥ
"1*ςετͯ͠Β͑ͳ͍
-*/&ͷ2"ͷൣғlը໘ͷ͋Δͷzը໘͕͋ΔϢʔβͷૢ࡞ΛγϛϡϨʔτ.PCJMF"QQ%FTLUPQ"QQ#SPXTFS 8FC1BHF"1*ɺը໘͕͋ΔϓϩμΫτͷ2"Ͱؒతʹςετ͞ΕΔ
Կ͕ʁAPIAPIAPIAPIAPIDBDB
Կ͕ʁAPIAPIAPIAPIAPIDBDBը໘ʹର͢Δςετؒతʹςετ͞ΕΔγφϦΦ࣍ୈ
Կ͕ʁ"1*ʹରͯ͠ेͳύλʔϯͷςετ͕࣮ߦ͞Εͳ͍Մೳੑ͕ߴ͍
Կ͕ʁ"1* ಉ࢜ͷ*OUFHSBUJPO5FTUϨϕϧͷόά͕ɺ6*5FTU·Ͱݕग़͞Εͳ͍
Կ͕ʁAPIAPIAPIAPIAPIDBDB1VCMJD"1*4%,
Կ͕ʁ"1*͕Ϣʔβʹର͢Δͷ*OUFSGBDFͰ͋Δ߹ɺ&&5FTU͕࣮ࢪ͞Εͳ͍
%FWFMPQFS͕ಈ࡞֬ೝ
ࣗಈԽͨ͠΄͏͕ྑ͘ͳ͍ʁ
ͱݴ͑ɺ
"1*ςετͷϝϯςେม
Ͳ͏ͬͯ"1*Λςετ͢Δ͔Ͱ͖Δ 㱠 ͍͍͢1PTUNBOͳͲͷ(6*πʔϧ+6OJUͳͲͷ 6OJU5FTUJOH'SBNFXPSL3FTU"TTVSFEͳͲͷ3&45"1*ಛԽܕ5FTUJOH'SBNFXPSLDVSM
Ͳ͏ͬͯ"1*Λςετ͢Δ͔Ͱ͖Δ 㱠 ͍͍͢1PTUNBOͳͲͷ(6*πʔϧ+6OJUͳͲͷ 6OJU5FTUJOH'SBNFXPSL3FTU"TTVSFEͳͲͷ3&45"1*ಛԽܕ5FTUJOH'SBNFXPSLDVSMܰ͘͏ʹͱ͖͍ͬͭ͢έʔε͕૿ՃɾෳࡶԽ͢Δͱਏ͍
Ͳ͏ͬͯ"1*Λςετ͢Δ͔Ͱ͖Δ 㱠 ͍͍͢1PTUNBOͳͲͷ(6*πʔϧ+6OJUͳͲͷ 6OJU5FTUJOH'SBNFXPSL3FTU"TTVSFEͳͲͷ3&45"1*ಛԽܕ5FTUJOH'SBNFXPSLDVSMܰ͘͏ʹͱ͖͍ͬͭ͢έʔε͕૿ՃɾෳࡶԽ͢Δͱਏ͍ Ճͷֶशίετ੍͕͍͕গͳ͗ͯ͢ΧΦεʹͳΓ͕ͪ
Ͳ͏ͬͯ"1*Λςετ͢Δ͔Ͱ͖Δ 㱠 ͍͍͢1PTUNBOͳͲͷ(6*πʔϧ+6OJUͳͲͷ 6OJU5FTUJOH'SBNFXPSL3FTU"TTVSFEͳͲͷ3&45"1*ಛԽܕ5FTUJOH'SBNFXPSLDVSMܰ͘͏ʹͱ͖͍ͬͭ͢έʔε͕૿ՃɾෳࡶԽ͢Δͱਏ͍ Ճͷֶशίετ੍͕͍͕গͳ͗ͯ͢ΧΦεʹͳΓ͕ͪର͕ ͪΌΜͱͨ͠3&45"1*ͳΒศར31$ͱ͔ਏ͍
Ͳ͏ͬͯ"1*Λςετ͢Δ͔Ͱ͖Δ 㱠 ͍͍͢1PTUNBOͳͲͷ(6*πʔϧ+6OJUͳͲͷ 6OJU5FTUJOH'SBNFXPSL3FTU"TTVSFEͳͲͷ3&45"1*ಛԽܕ5FTUJOH'SBNFXPSLDVSMܰ͘͏ʹͱ͖͍ͬͭ͢έʔε͕૿ՃɾෳࡶԽ͢Δͱਏ͍ Ճͷֶशίετ੍͕͍͕গͳ͗ͯ͢ΧΦεʹͳΓ͕ͪର͕ ͪΌΜͱͨ͠3&45"1*ͳΒศར31$ͱ͔ਏ͍ਏ͍
%FWFMPQFS 1SPHSBNNFSʹͱͬͯಡΈॻ͖͘͢͠ɺϝϯς͍͢͠ͷ͕ཉ͍͠ʂ
45"$
IUUQTXXXTMJEFTIBSFOFUUBLBOPSJHNJDSPTFSWJDFTUFTUBVUPNBUJPOXJUILBSBUF
͋ͬͨʂ
,BSBUF
8IBUJT,BSBUFAPI TestingFrameworkwritten in JavaWrite likeCucumberRun like JUnitTestingMockingPerf-Testing https://github.com/intuit/karateNative Supportfor JSON-basedREST API
&YBNQMFPG,BSBUF
,BSBUFͷ͍͍ͱ͜ΖSimpleforSimple CaseCucumberCompatibleReusableTest Casehttps://github.com/intuit/karateExtensibleforComplex Case
આ໌͚ͩ͡ΌΑ͘Θ͔Βͳ͍ʁ
ͦΕͰɺ
-JWF$PEJOHͷ͓࣌ؒͰ͢ɻ
,BSBUFɺ͍͍Ͱ͢ΑͶʁ
%FNP -JWF$PEJOH8SJUF&YFDVUF4IPX3FQPSU
,BSBUFɺΊ͍ͯͬͯ·͢ʂ
ࣾͰͷ,BSBUFීٴ׆ಈ։ൃνʔϜͱҰॹʹςετΛॻ͘4&5։ൃνʔϜςετͷϊϋ։ൃνʔϜ 4&5υϝΠϯφϨοδ։ൃνʔϜ͕ओମ
͋ΔνʔϜͰͷՌຊ൪ڥͰͷোݮোͷૣظݕग़ӡ༻࣌ΑΓϦϦʔε࣌ɺϦϦʔε࣌ΑΓ։ൃ࣌։ൃνʔϜͷࣗओੑ্͕͕ͬͨ ,BSBUF4&5ͷ׆ಈिؒ
࠷ॳͷέʔε4&5͕࡞Ճͷέʔε։ൃνʔϜ͕࡞4&5͕ϨϏϡʔͦΕҎ߱ έʔε։ൃνʔϜ͕࡞νʔϜϨϏϡʔ
,BSBUF͕࣭Λ্͛Δ
,BSBUF͕z zΛଅ͢
ࣾͰͷ,BSBUFීٴ׆ಈࣾษڧձ ͬΆ͍ͷͰڞ༗)BOET0Oηογϣϯͷ։࠵αϯϓϧ࣮ Α͋͘ΔύλʔϯͷఏڙࢀՃऀͷ୲αʔϏεͷςετΛ࣮ࡍʹॻ͘ೝূॲཧඇಉظॲཧ
ࣗಈςετͷӡ༻Ͱग़ͯ͘ΔΞϨίϨςετ݁Ռ͔Β'BJMͷݪҼΛ୳͢ͷେม
Ͳ͜ʹݪҼ͕͋ΔʁAPIAPIAPIDBςετࣦഊʂ
Ͳ͜ʹݪҼ͕͋ΔʁʁʁʁʁςετࣦഊʂͲ͕͜ͳͷ
Ͳ͏ʹ͔Ͱ͖ͳ͍ʁ
ࣗΒͰ࡞Ζ͔ͬ
ԿͰࣗલͰ࡞Δͷʁ"1*5FTUͷΠΠײ͡ͷϨϙʔςΟϯάπʔϧ͕ͳ͍ࢄτϨʔγϯάπʔϧ ϞχλϦϯάɺσϓϩΠͳͲͱ࿈ܞ͍ͤͨ͞ཉ͍͠ػೳ͕ͳ͚Εɺ࡞Ε͍͍ʂ
ࢄτϨʔγϯά
ࢄτϨʔγϯά %JTUSJCVUFE5SBDJOHෳͷαʔϏεʹ·͕ͨΔॲཧΛੳ͢ΔΈ.JDSPTFSWJDFT3FRVFTUʹରͯ͠ͲͷαʔϏεͷͲͷ&OEQPJOU͕DBMM͞Ε͔ͨͲͷαʔϏεͷύϑΥʔϚϯε͕ϘτϧωοΫʹͳ͍ͬͯΔ͔
;JQLJO ͷ 5SBDF-PH
4FCBT
4FCBTr "1*5FTUJOH3FQPSU 1MBUGPSNϩʔΧϧɾ$*্Ͱ࣮ߦͨ͠ςετ݁ՌͷӾཡɾཧςετ͕'BJMͨ͠ࡍɺ5SBDF-PHΛجʹରऀʹͷΈ௨Λൃߦ5SBDF-PHͷ֬ೝՄೳ
௨ͷΈAPIAPIAPIDB*%""" *%$$$*%###
௨ͷΈAPIAPIAPIDB*%""" *%$$$*%###5SBDF-PH͔ΒΤϥʔͷ͋Δ$PNQPOFOUΛݕग़
,BSBUFͷ 3FQPSU-PH
Քಇڥ"QQMJDBUJPO*%;JQLJO ͷ 5SBDF-PH
௨ͷΈAPIAPIAPIDB*%""" *%$$$*%###5SBDF-PH͔ΒΤϥʔͷ͋Δ$PNQPOFOUΛݕग़.POJUPSJOH4FCBT
ӡ༻ͯ͠ΈͯͲΜͳײ͡ʁ
Ӷҙݕূதʜ!
4FCBT͕ࢦ͢ͷ
ϓϩμΫτ࣭ͷ্
͡Όͳͯ͘ɺ
։ൃ ʹ·ͭΘΔίετͷݮ
4FCBT͕ݮΒ͍ͨ͠ͷɾίετো࣌ͷରԠ2"࣌ͷ3FHSFTTJPOσϓϩΠϛε2"ɾຊ൪ڥͰͷόά
,FZ.FTTBHFճऩ
ςετͷׂ࣭อূʜ͚ͩ͡Όͳ͍ʂʂ
ςετͷ ࣭อূʜ͚ͩ͡Όͳ͍ʂʂ
ςετΛॻ͘ ʹ օ͕ϋοϐʔͱ͍͏ঢ়ଶʹ͍ͨ͠
ͲͷڥͰʹཱͭʹօ͕ϋοϐʔ
5IBOLZPVGPSMJTUFOJOH