Slide 1

Slide 1 text

,BSBUFʹΑΔ։ൃϓϩηεվળͷࣄྫ ͱ ;JQLJOͱ࿈ܞͨ͠ ϚΠΫϩαʔϏεͷো֐఺ݕ஌ͷ࢓૊Έ -*/&גࣜձࣾ ߴڮ ܄ γεςϜςετࣗಈԽΧϯϑΝϨϯε 

Slide 2

Slide 2 text

ࣗݾ঺հ

Slide 3

Slide 3 text

*TBP5BLBIBTIJ !SJDUP@)%*5 4&5 4PGUXBSF&OHJOFFSJO5FTU

Slide 4

Slide 4 text

͓Θͼ

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

ൃද ͕࣌ؒͨΓ·ͤΜͰͨ͠!

Slide 7

Slide 7 text

https://speakerdeck.com/line_developers/build-self-organized-team-through-test-automation-with-karate

Slide 8

Slide 8 text

https://speakerdeck.com/line_devday2019/failure-detection-of-microservices-with-test-and-zipkin λΠτϧ͸ࣅͯΔ͚Ͳ த਎ ओ୊ ͸ҧ͍·͢

Slide 9

Slide 9 text

ຊ೔ͷ ,FZ.FTTBHF

Slide 10

Slide 10 text

,FZ.FTTBHF ςετͷ໾ׂ͸඼࣭อূʜ ͚ͩ͡Όͳ͍ʂ

Slide 11

Slide 11 text

,FZ.FTTBHF ςετΛॻ͘ΈΜͳ͕ϋοϐʔ ͳঢ়ଶʹ͠Α͏ 2" 1SPEVDU0XOFS %FWFMPQFS

Slide 12

Slide 12 text

"HFOEB  "1*ςετͯ͠΋Β͑ͳ͍໰୊  "1*ςετͷϝϯςେม໰୊  ,BSBUF΍Ζ͏ͥ -JWF$PEJOH  ςετϨϙʔτΛ΋ͬͱ࢖͍΍͘͢͠Α͏ͥ

Slide 13

Slide 13 text

"1*ςετͯ͠΋Β͑ͳ͍໰୊

Slide 14

Slide 14 text

-*/&ͷ 2"ͷ؅׋ൣғ͸lը໘ͷ͋Δ΋ͷz šը໘͕͋ΔϢʔβͷૢ࡞ΛγϛϡϨʔτ š.PCJMF"QQ š%FTLUPQ"QQ š#SPXTFS 8FC1BHF š"1*͸ɺը໘͕͋ΔϓϩμΫτͷ2"Ͱ ؒ઀తʹςετ͞ΕΔ

Slide 15

Slide 15 text

Կ͕໰୊ʁ API API API API API DB DB

Slide 16

Slide 16 text

Կ͕໰୊ʁ API API API API API DB DB

Slide 17

Slide 17 text

Կ͕໰୊ʁ API API API API API DB DB ը໘ʹର͢Δ ςετ ؒ઀తʹ ςετ͞ΕΔ γφϦΦ࣍ୈ

Slide 18

Slide 18 text

Կ͕໰୊ʁ š"1*ʹରͯ͠े෼ͳύλʔϯͷςετ͕ ࣮ߦ͞Εͳ͍Մೳੑ͕ߴ͍

Slide 19

Slide 19 text

Կ͕໰୊ʁ š"1* ಉ࢜ ͷ*OUFHSBUJPO5FTUϨϕϧͷόά͕ɺ 6*5FTU·Ͱݕग़͞Εͳ͍

Slide 20

Slide 20 text

Կ͕໰୊ʁ API API API API API DB DB 1VCMJD"1* 4%,

Slide 21

Slide 21 text

Կ͕໰୊ʁ š"1*͕Ϣʔβʹର͢Δ௚઀ͷ*OUFSGBDFͰ͋Δ৔߹ɺ &&5FTU͕࣮ࢪ͞Εͳ͍

Slide 22

Slide 22 text

%FWFMPQFS͕ಈ࡞֬ೝ

Slide 23

Slide 23 text

ࣗಈԽͨ͠΄͏͕ྑ͘ͳ͍ʁ

Slide 24

Slide 24 text

ͱ͸ݴ͑ɺ

Slide 25

Slide 25 text

"1*ςετͷϝϯςେม໰୊

Slide 26

Slide 26 text

Ͳ͏΍ͬͯ"1*Λςετ͢Δ͔ šͰ͖Δ 㱠 ࢖͍΍͍͢ š1PTUNBOͳͲͷ(6*πʔϧ š+6OJUͳͲͷ 6OJU5FTUJOH'SBNFXPSL š3FTU"TTVSFEͳͲͷ3&45"1*ಛԽܕ5FTUJOH'SBNFXPSL šDVSM

Slide 27

Slide 27 text

Ͳ͏΍ͬͯ"1*Λςετ͢Δ͔ šͰ͖Δ 㱠 ࢖͍΍͍͢ š1PTUNBOͳͲͷ(6*πʔϧ š+6OJUͳͲͷ 6OJU5FTUJOH'SBNFXPSL š3FTU"TTVSFEͳͲͷ3&45"1*ಛԽܕ5FTUJOH'SBNFXPSL šDVSM ܰ͘࢖͏෼ʹ͸ ͱ͖ͬͭ΍͍͢ έʔε͕૿ՃɾෳࡶԽ ͢Δͱਏ͍

Slide 28

Slide 28 text

Ͳ͏΍ͬͯ"1*Λςετ͢Δ͔ šͰ͖Δ 㱠 ࢖͍΍͍͢ š1PTUNBOͳͲͷ(6*πʔϧ š+6OJUͳͲͷ 6OJU5FTUJOH'SBNFXPSL š3FTU"TTVSFEͳͲͷ3&45"1*ಛԽܕ5FTUJOH'SBNFXPSL šDVSM ܰ͘࢖͏෼ʹ͸ ͱ͖ͬͭ΍͍͢ έʔε͕૿ՃɾෳࡶԽ ͢Δͱਏ͍ ௥Ճͷ ֶशίετ ͕௿͍ ੍໿͕গͳ͗ͯ͢ ΧΦεʹͳΓ͕ͪ

Slide 29

Slide 29 text

Ͳ͏΍ͬͯ"1*Λςετ͢Δ͔ šͰ͖Δ 㱠 ࢖͍΍͍͢ š1PTUNBOͳͲͷ(6*πʔϧ š+6OJUͳͲͷ 6OJU5FTUJOH'SBNFXPSL š3FTU"TTVSFEͳͲͷ3&45"1*ಛԽܕ5FTUJOH'SBNFXPSL šDVSM ܰ͘࢖͏෼ʹ͸ ͱ͖ͬͭ΍͍͢ έʔε͕૿ՃɾෳࡶԽ ͢Δͱਏ͍ ௥Ճͷ ֶशίετ ͕௿͍ ੍໿͕গͳ͗ͯ͢ ΧΦεʹͳΓ͕ͪ ର৅͕ ͪΌΜͱͨ͠ 3&45"1*ͳΒศར 31$ͱ͔͸ਏ͍

Slide 30

Slide 30 text

Ͳ͏΍ͬͯ"1*Λςετ͢Δ͔ šͰ͖Δ 㱠 ࢖͍΍͍͢ š1PTUNBOͳͲͷ(6*πʔϧ š+6OJUͳͲͷ 6OJU5FTUJOH'SBNFXPSL š3FTU"TTVSFEͳͲͷ3&45"1*ಛԽܕ5FTUJOH'SBNFXPSL šDVSM ܰ͘࢖͏෼ʹ͸ ͱ͖ͬͭ΍͍͢ έʔε͕૿ՃɾෳࡶԽ ͢Δͱਏ͍ ௥Ճͷ ֶशίετ ͕௿͍ ੍໿͕গͳ͗ͯ͢ ΧΦεʹͳΓ͕ͪ ର৅͕ ͪΌΜͱͨ͠ 3&45"1*ͳΒศར 31$ͱ͔͸ਏ͍ ਏ͍

Slide 31

Slide 31 text

%FWFMPQFS 1SPHSBNNFS ʹͱͬͯಡΈॻ͖͠΍͘͢ɺ ϝϯς͠΍͍͢΋ͷ͕ཉ͍͠ʂ

Slide 32

Slide 32 text

45"$

Slide 33

Slide 33 text

IUUQTXXXTMJEFTIBSFOFUUBLBOPSJHNJDSPTFSWJDFTUFTUBVUPNBUJPOXJUILBSBUF

Slide 34

Slide 34 text

IUUQTXXXTMJEFTIBSFOFUUBLBOPSJHNJDSPTFSWJDFTUFTUBVUPNBUJPOXJUILBSBUF

Slide 35

Slide 35 text

͋ͬͨʂ

Slide 36

Slide 36 text

,BSBUF

Slide 37

Slide 37 text

8IBUJT,BSBUF API Testing Framework written in Java Write like Cucumber Run like JUnit Testing Mocking Perf-Testing https://github.com/intuit/karate Native Support for JSON-based REST API

Slide 38

Slide 38 text

&YBNQMFPG,BSBUF

Slide 39

Slide 39 text

,BSBUFͷ͍͍ͱ͜Ζ Simple for Simple Case Cucumber Compatible Reusable Test Case https://github.com/intuit/karate Extensible for Complex Case

Slide 40

Slide 40 text

આ໌͚ͩ͡ΌΑ͘Θ͔Βͳ͍ʁ

Slide 41

Slide 41 text

ͦΕͰ͸ɺ

Slide 42

Slide 42 text

-JWF$PEJOHͷ͓࣌ؒͰ͢ɻ

Slide 43

Slide 43 text

,BSBUFɺ͍͍Ͱ͢ΑͶʁ

Slide 44

Slide 44 text

%FNP -JWF$PEJOH š8SJUF&YFDVUF4IPX3FQPSU

Slide 45

Slide 45 text

,BSBUFɺ޿Ί͍ͯͬͯ·͢ʂ

Slide 46

Slide 46 text

ࣾ಺Ͱͷ,BSBUFීٴ׆ಈ š։ൃνʔϜͱҰॹʹςετΛॻ͘ 4&5։ൃνʔϜ ςετͷϊ΢ϋ΢ ։ൃνʔϜ 4&5 υϝΠϯφϨοδ ։ൃνʔϜ͕ ओମ

Slide 47

Slide 47 text

͋ΔνʔϜͰͷ੒Ռ šຊ൪؀ڥͰͷো֐࡟ݮ šো֐ͷૣظݕग़ šӡ༻࣌ΑΓ΋ϦϦʔε࣌ɺϦϦʔε࣌ΑΓ΋։ൃ࣌ š։ൃνʔϜͷࣗओੑ্͕͕ͬͨ  ,BSBUF 4&5ͷ׆ಈ िؒ ෼

Slide 48

Slide 48 text

࠷ॳͷέʔε 4&5͕࡞੒ ௥Ճͷέʔε ։ൃνʔϜ͕࡞੒ 4&5͕ϨϏϡʔ ͦΕҎ߱ έʔε௒  ։ൃνʔϜ͕࡞੒ νʔϜ಺ϨϏϡʔ

Slide 49

Slide 49 text

,BSBUF͕඼࣭Λ্͛Δ

Slide 50

Slide 50 text

,BSBUF͕඼࣭Λ্͛Δ

Slide 51

Slide 51 text

,BSBUF͕ z z Λଅ͢

Slide 52

Slide 52 text

ࣾ಺Ͱͷ,BSBUFීٴ׆ಈ šࣾ಺ษڧձ ͬΆ͍΋ͷ Ͱڞ༗ š)BOET0Oηογϣϯͷ։࠵ šαϯϓϧ࣮૷ Α͋͘Δύλʔϯ ͷఏڙ ࢀՃऀͷ୲౰αʔϏε ͷςετΛ࣮ࡍʹॻ͘ ೝূॲཧ ඇಉظॲཧ

Slide 53

Slide 53 text

ࣗಈςετͷӡ༻Ͱग़ͯ͘ΔΞϨίϨ šςετ݁Ռ͔Β'BJMͷݪҼΛ୳͢ͷେม໰୊

Slide 54

Slide 54 text

Ͳ͜ʹݪҼ͕͋Δʁ API API API DB ςετ ࣦഊʂ

Slide 55

Slide 55 text

Ͳ͜ʹݪҼ͕͋Δʁ ʁ ʁ ʁ ʁ ςετ ࣦഊʂ Ͳ͕͜໰୊ͳͷ

Slide 56

Slide 56 text

Ͳ͏ʹ͔Ͱ͖ͳ͍ʁ

Slide 57

Slide 57 text

ࣗ෼ΒͰ࡞Ζ͔ͬ

Slide 58

Slide 58 text

ԿͰࣗલͰ࡞Δͷʁ š"1*5FTUͷΠΠײ͡ͷϨϙʔςΟϯάπʔϧ͕ͳ͍ š෼ࢄτϨʔγϯά΍಺੡πʔϧ ϞχλϦϯάɺ σϓϩΠ ͳͲͱ࿈ܞ͍ͤͨ͞ šཉ͍͠ػೳ͕ͳ͚Ε͹ɺ࡞Ε͹͍͍ʂ

Slide 59

Slide 59 text

෼ࢄτϨʔγϯά

Slide 60

Slide 60 text

෼ࢄτϨʔγϯά %JTUSJCVUFE5SBDJOH šෳ਺ͷαʔϏεʹ·͕ͨΔॲཧΛ෼ੳ͢Δ࢓૊Έ .JDSPTFSWJDFT 3FRVFTUʹରͯ͠ͲͷαʔϏεͷ Ͳͷ&OEQPJOU͕DBMM͞Ε͔ͨ ͲͷαʔϏεͷύϑΥʔϚϯε͕ ϘτϧωοΫʹͳ͍ͬͯΔ͔

Slide 61

Slide 61 text

;JQLJO ͷ 5SBDF-PH

Slide 62

Slide 62 text

4FCBT

Slide 63

Slide 63 text

4FCBTr "1*5FTUJOH3FQPSU 1MBUGPSN šϩʔΧϧɾ$*্Ͱ࣮ߦͨ͠ςετ݁ՌͷӾཡɾ؅ཧ šςετ͕'BJMͨ͠ࡍɺ5SBDF-PHΛجʹର৅ऀʹͷΈ ௨஌Λൃߦ 5SBDF-PHͷ ֬ೝ΋Մೳ

Slide 64

Slide 64 text

No content

Slide 65

Slide 65 text

No content

Slide 66

Slide 66 text

No content

Slide 67

Slide 67 text

No content

Slide 68

Slide 68 text

௨஌ͷ࢓૊Έ API API API DB *%""" *%$$$ *%###

Slide 69

Slide 69 text

௨஌ͷ࢓૊Έ API API API DB *%""" *%$$$ *%###

Slide 70

Slide 70 text

௨஌ͷ࢓૊Έ API API API DB *%""" *%$$$ *%###

Slide 71

Slide 71 text

௨஌ͷ࢓૊Έ API API API DB *%""" *%$$$ *%### 5SBDF-PH͔Β Τϥʔͷ͋Δ $PNQPOFOUΛݕग़

Slide 72

Slide 72 text

,BSBUFͷ 3FQPSU-PH

Slide 73

Slide 73 text

Քಇ؀ڥ "QQMJDBUJPO*% ;JQLJO ͷ 5SBDF-PH

Slide 74

Slide 74 text

௨஌ͷ࢓૊Έ API API API DB *%""" *%$$$ *%### 5SBDF-PH͔Β Τϥʔͷ͋Δ $PNQPOFOUΛݕग़ .POJ UPSJOH 4FCBT

Slide 75

Slide 75 text

ӡ༻ͯ͠ΈͯͲΜͳײ͡ʁ

Slide 76

Slide 76 text

Ӷҙݕূதʜ!

Slide 77

Slide 77 text

4FCBT͕໨ࢦ͢΋ͷ

Slide 78

Slide 78 text

ϓϩμΫτ඼࣭ͷ޲্

Slide 79

Slide 79 text

͡Όͳͯ͘ɺ

Slide 80

Slide 80 text

։ൃ ʹ·ͭΘΔ ίετͷ࡟ݮ

Slide 81

Slide 81 text

4FCBT͕ݮΒ͍ͨ͠΋ͷɾίετ šো֐࣌ͷରԠ š2"࣌ͷ3FHSFTTJPO΍σϓϩΠϛε š2"ɾຊ൪؀ڥͰͷόά            

Slide 82

Slide 82 text

,FZ.FTTBHFճऩ

Slide 83

Slide 83 text

ςετͷ໾ׂ͸඼࣭อূʜ ͚ͩ͡Όͳ͍ʂʂ

Slide 84

Slide 84 text

ςετͷ໾ׂ͸඼࣭อূʜ ͚ͩ͡Όͳ͍ʂʂ

Slide 85

Slide 85 text

ςετͷ ͸඼࣭อূʜ ͚ͩ͡Όͳ͍ʂʂ

Slide 86

Slide 86 text

ςετΛॻ͘ ʹ օ͕ϋοϐʔ ͱ͍͏ঢ়ଶʹ͍ͨ͠

Slide 87

Slide 87 text

Ͳͷ؀ڥͰ΋໾ʹཱͭ ʹ օ͕ϋοϐʔ

Slide 88

Slide 88 text

5IBOLZPVGPSMJTUFOJOH