JavaScriptのE2Eフレームワークを触ってみる
by
riririusei99
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
JavaScriptの E2Eフレームワークを 触ってみる R I R I R I U S E I 9 9
Slide 2
Slide 2 text
⾃⼰紹介 riririusei99 チームスピリット QAエンジニア/Scrum Master futsal・CTF・1⼈映画 Jリーグ観戦(⼤宮アルディージャ)
Slide 3
Slide 3 text
今⽇のテーマは ⾃動テスト(E2E) の紹介です
Slide 4
Slide 4 text
Javascriptを愛して やまないエンジニアの 皆様に向けて
Slide 5
Slide 5 text
あなたに合ったE2Eが きっと⾒つかる!! …といいな
Slide 6
Slide 6 text
JavaScript × E2E Testing R I R I R I U S E I 9 9
Slide 7
Slide 7 text
今回のおしながき ・Protractor ・cinnamonjs ・Cypress ・Nightmare.js ・TestCafe ルール 動くとこまで確認して、 それぞれの特徴を紹介する
Slide 8
Slide 8 text
Protractor 名 家 ⽣ ま れ の E 2 E フ レ ー ム ワ ー ク
Slide 9
Slide 9 text
Protractor URL: http://www.protractortest.org/#/ Github Star: 7242 (2018/1/22時点) 特徴: • Angular.js 向けE2Eフレームワーク(それ以外も使える) • Selenium Webdriverが動く • 拡張性が⾼い – ドライバを切り替えてブラウザを切り替えられる – テストフレームワーク&アサーションライブラリなど
Slide 10
Slide 10 text
TEST CODE
Slide 11
Slide 11 text
TestCafe a s y n c / a w a i t を バ リ バ リ 使 い た い あ な た に
Slide 12
Slide 12 text
TestCafe URL: https://devexpress.github.io/testcafe/ Github Star: 3883 (2018/1/22時点) 特徴: • Selenium を使わず動く • 設定ファイルなしで動く • 導⼊が簡単 • TypeScript, モダンなJS(async/await)を使って書ける
Slide 13
Slide 13 text
TEST CODE
Slide 14
Slide 14 text
Nightmare 名 は 体 を 表 す
Slide 15
Slide 15 text
Nightmare URL: https://github.com/segmentio/nightmare Github Star: 14640 (2018/1/22時点) 特徴: • 名前がカッコイイ • Electronベースで動く • Seleniumを使わずに動く • ブラウザ⾃動ツール向け • 名前がカッコイイ(2回⽬)
Slide 16
Slide 16 text
TEST CODE
Slide 17
Slide 17 text
Cypress 最 近 噂 の E 2 E フ レ ー ム ワ ー ク
Slide 18
Slide 18 text
Cypress URL: https://www.cypress.io/ Github Star: 3459(2018/1/22時点) 特徴: • 導⼊が⾮常に簡単 • CLIでも動く • レポーティングにテンションが上がる • 修正を検知して⾃動でテストが⾛る • 今のところChromeで動く
Slide 19
Slide 19 text
TEST CODE
Slide 20
Slide 20 text
cinnamonjs 違 い を ⾒ せ た い ⼈ 、 独 ⾃ 路 線 を 好 む ⼈
Slide 21
Slide 21 text
cinnamonjs URL: https://github.com/ralphv/cinnamonjs Github Star: 1(2018/1/22時点) 特徴: • データ駆動型テスト(DDT)を意識したフレームワーク • 独⾃のレポーティング機能を備えている • Json形式でテストを書く • Seleniumを使ってブラウザ操作する
Slide 22
Slide 22 text
TEST CODE
Slide 23
Slide 23 text
CONCLUSIONS R I R I R I U S E I 9 9
Slide 24
Slide 24 text
E2E選定は置かれた環境による 検討事項 • クロスブラウザテストの実施するか • CIに載せたリグレッションテストを⾏うか • テストコードの書きやすさ • 導⼊のしやすさ • レポーティング結果の確認のしやすさ • 証跡の残し⽅(スクリーンショット、動画)
Slide 25
Slide 25 text
⾃分が使うなら 既存テストとフロントエンド での役割分担を⽬指す
Slide 26
Slide 26 text
役割分担 • クロスブラウザテスト • データ⼊出⼒など • CI環境向け⽤ • デモ⼿順の⾃動化 • シナリオテスト • ローカルでの確認⽤
Slide 27
Slide 27 text
まとめ R I R I R I U S E I 9 9
Slide 28
Slide 28 text
偉い⼈は⾔いました “ゆうめいな E2E そうでない E2E そんなの ひとの かって ほんとうに つよい QAエンジニアなら すきな E2E でかてるように がんばるべき”
Slide 29
Slide 29 text
THANKS A LOT! R I R I R I U S E I 9 9