Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Failure-Detection-With-Karate-And-Zipkin

 Failure-Detection-With-Karate-And-Zipkin

2019/11/30に開催されたシステムテスト自動化カンファレンス 2019
での登壇資料です
https://testautomationresearch.connpass.com/event/144768/

LINE Developers
PRO

November 30, 2019
Tweet

More Decks by LINE Developers

Other Decks in Technology

Transcript

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

    View Slide

  2. ࣗݾ঺հ

    View Slide

  3. *TBP5BLBIBTIJ
    [email protected])%*5
    4&5
    4PGUXBSF&OHJOFFSJO5FTU

    View Slide

  4. ͓Θͼ

    View Slide

  5. View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  9. ຊ೔ͷ ,FZ.FTTBHF

    View Slide

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

    View Slide

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

    View Slide

  12. "HFOEB
    "1*ςετͯ͠΋Β͑ͳ͍໰୊
    "1*ςετͷϝϯςେม໰୊
    ,BSBUF΍Ζ͏ͥ -JWF$PEJOH

    ςετϨϙʔτΛ΋ͬͱ࢖͍΍͘͢͠Α͏ͥ

    View Slide

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

    View Slide

  14. -*/&ͷ
    2"ͷ؅׋ൣғ͸lը໘ͷ͋Δ΋ͷz
    šը໘͕͋ΔϢʔβͷૢ࡞ΛγϛϡϨʔτ
    š.PCJMF"QQ
    š%FTLUPQ"QQ
    š#SPXTFS 8FC1BHF

    š"1*͸ɺը໘͕͋ΔϓϩμΫτͷ2"Ͱ
    ؒ઀తʹςετ͞ΕΔ

    View Slide

  15. Կ͕໰୊ʁ
    API
    API
    API
    API
    API
    DB
    DB

    View Slide

  16. Կ͕໰୊ʁ
    API
    API
    API
    API
    API
    DB
    DB

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  22. %FWFMPQFS͕ಈ࡞֬ೝ

    View Slide

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

    View Slide

  24. ͱ͸ݴ͑ɺ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    3&45"1*ͳΒศར
    31$ͱ͔͸ਏ͍

    View Slide

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

    3&45"1*ͳΒศར
    31$ͱ͔͸ਏ͍
    ਏ͍

    View Slide

  31. %FWFMPQFS 1SPHSBNNFS

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

    View Slide

  32. 45"$

    View Slide

  33. IUUQTXXXTMJEFTIBSFOFUUBLBOPSJHNJDSPTFSWJDFTUFTUBVUPNBUJPOXJUILBSBUF

    View Slide

  34. IUUQTXXXTMJEFTIBSFOFUUBLBOPSJHNJDSPTFSWJDFTUFTUBVUPNBUJPOXJUILBSBUF

    View Slide

  35. ͋ͬͨʂ

    View Slide

  36. ,BSBUF

    View Slide

  37. 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

    View Slide

  38. &YBNQMFPG,BSBUF

    View Slide

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

    View Slide

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

    View Slide

  41. ͦΕͰ͸ɺ

    View Slide

  42. -JWF$PEJOHͷ͓࣌ؒͰ͢ɻ

    View Slide

  43. ,BSBUFɺ͍͍Ͱ͢ΑͶʁ

    View Slide

  44. %FNP -JWF$PEJOH

    š8SJUF&YFDVUF4IPX3FQPSU

    View Slide

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

    View Slide

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

    View Slide

  47. ͋ΔνʔϜͰͷ੒Ռ
    šຊ൪؀ڥͰͷো֐࡟ݮ
    šো֐ͷૣظݕग़
    šӡ༻࣌ΑΓ΋ϦϦʔε࣌ɺϦϦʔε࣌ΑΓ΋։ൃ࣌
    š։ൃνʔϜͷࣗओੑ্͕͕ͬͨ

    ,BSBUF

    4&5ͷ׆ಈ
    िؒ ෼

    View Slide

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

    ։ൃνʔϜ͕࡞੒
    νʔϜ಺ϨϏϡʔ

    View Slide

  49. ,BSBUF͕඼࣭Λ্͛Δ

    View Slide

  50. ,BSBUF͕඼࣭Λ্͛Δ

    View Slide

  51. ,BSBUF͕
    z z
    Λଅ͢

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  56. Ͳ͏ʹ͔Ͱ͖ͳ͍ʁ

    View Slide

  57. ࣗ෼ΒͰ࡞Ζ͔ͬ

    View Slide

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

    View Slide

  59. ෼ࢄτϨʔγϯά

    View Slide

  60. ෼ࢄτϨʔγϯά %JTUSJCVUFE5SBDJOH

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

    View Slide

  61. ;JQLJO ͷ 5SBDF-PH

    View Slide

  62. 4FCBT

    View Slide

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

    View Slide

  64. View Slide

  65. View Slide

  66. View Slide

  67. View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  72. ,BSBUFͷ 3FQPSU-PH

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  76. Ӷҙݕূதʜ!

    View Slide

  77. 4FCBT͕໨ࢦ͢΋ͷ

    View Slide

  78. ϓϩμΫτ඼࣭ͷ޲্

    View Slide

  79. ͡Όͳͯ͘ɺ

    View Slide

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

    View Slide

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








    View Slide

  82. ,FZ.FTTBHFճऩ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  88. 5IBOLZPVGPSMJTUFOJOH

    View Slide