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
E2E テスト入門
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Tajima Sachiko
July 18, 2020
Programming
500
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
E2E テスト入門
Demo動画は後日追加します!
#Zli_DMM_LT
Tajima Sachiko
July 18, 2020
More Decks by Tajima Sachiko
See All by Tajima Sachiko
デザインシステムで アクセシビリティ品質が 担保できなかった 「3つの理由」
schktjm
1
120
エラーとアクセシビリティ
schktjm
2
1.8k
コンポーネントライブラリで実現する、アクセシビリティの正しい実装パターン
schktjm
4
1.5k
ゼロから始めるアクセシビリティ啓蒙活動
schktjm
2
3.2k
CLUB p1ass を作った
schktjm
0
260
はじめての npm パッケージ作り
schktjm
1
320
Firebaseでお手軽OGP生成
schktjm
0
640
3時間でつくるいいかんじのポートフォリオサイト
schktjm
1
410
vuexとvue-routerとあれこれ
schktjm
0
1.5k
Other Decks in Programming
See All in Programming
GDG Korea Android: 2026 I/O Extended ~ What's new in Android development tools
pluu
0
200
そこに3びきプロダクトがいるじゃろう——生成AI時代における“価値が届かない理由”の構造
kosuket
0
350
5分で問診!Composer セキュリティ健康診断
codmoninc
0
730
作るコストが小さくなった時代 幸せに働くために改めて考えたいこと 〜エンジニアとして価値を出し続けるために注視している二分野〜
yuppeeng
0
140
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
230
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
100
霧の中の代数的エフェクト
funnyycat
1
450
Built Our Own Background Agent at LayerX #aidevex_findy
layerx
PRO
9
3.8k
Apache Hive: そしてCloud Native Lakehouseへ
okumin
1
190
Google Apps Script で Ruby を動かす
kawahara
0
120
自動化したのに回らないテスト運用の壁ーAI時代の品質責任と生産性
mfunaki
0
110
地域 SRE コミュニティ最前線 - ホンマでっかSRE勉強会
tk3fftk
0
290
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
650
My Coaching Mixtape
mlcsv
0
180
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
370
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Designing for humans not robots
tammielis
254
26k
Context Engineering - Making Every Token Count
addyosmani
9
1k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.7k
How to make the Groovebox
asonas
2
2.3k
The Spectacular Lies of Maps
axbom
PRO
1
880
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
450
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
360
Transcript
e2eテスト入門 2020/7/17 Zli x DMM 合同LT
1.自己紹介 ﹡ Sachiko Tajima ◦ twitter @schktjm ◦ github @schktjm
﹡ 会津大学 B4 DB研(AOJ) ﹡ フロントエンド / デザイン ﹡ AtCoder 緑 2
1. Demo Launching Browser
E2E (End-to-End)テストです! あれは何? 4
﹡ End-to-End Tesing ﹡ e2eテストとはアプリケーションフローが期待 通りに動くかどうかを確認するためにソフト ウェア全体を最初から最後までテストする手 法。 5 E2Eテストとは
1. ログイン画面を表示 2. メールアドレスを入力 3. パスワードを入力 4. ログインボタンをクリック 5. トップページに遷移
6 たとえばログインページだと を自動でテストします
﹡ テスト対象の、コンポーネントの統合やデータ の整合性を実際のユーザーシナリオ(ユーザー が新規登録をするなど)をシミュレーションし たうえで確認ができます。 7 なぜE2Eテストをするの?
﹡ テスト対象の、コンポーネントの統合やデータ の整合性を実際のユーザーシナリオ(ユーザー が新規登録をするなど)をシミュレーションし たうえで確認ができます。 → 手動でテストするのがめんどくさい! → 複雑になればなるほど期待した状態とは?? 8 なぜE2Eテストをするの?
2. E2Eテストツール iikanjinotext
Webフロントエンドにおける種類 ﹡ WebDriver 系 ◦ Selenium (Geb, Selenium WebDriver with
Concordion), WebdriverIO, Nightwatch.js, Testium, Protractor ﹡ (ヘッドレス) ブラウザ自動化系 ◦ Puppeteer, jsdom, Nightmare ﹡ (ヘッドレス) ブラウザ自動化 + テスト系 ◦ Cypress.io, TestCafe, Intern ﹡ Chrome 拡張 ◦ Ghost Inspector 10 E2E テスト自動化ツールをざっと調べたまとめ-Qiita ﹡ 調べたところ一番有名 ﹡ フロントエンドの非同期 処理やSPAには不向き
Webフロントエンドにおける種類 ﹡ WebDriver 系 ◦ Selenium (Geb, Selenium WebDriver with
Concordion), WebdriverIO, Nightwatch.js, Testium, Protractor ﹡ (ヘッドレス) ブラウザ自動化系 ◦ Puppeteer, jsdom, Nightmare ﹡ (ヘッドレス) ブラウザ自動化 + テスト系 ◦ Cypress.io, TestCafe, Intern ﹡ Chrome 拡張 ◦ Ghost Inspector 11 E2E テスト自動化ツールをざっと調べたまとめ-Qiita ﹡ ヘッドレスでChromeや Chromiumを操作できる ﹡ SPAのe2eのテストツー ルとして有名 ﹡ テストをするならテスト ツールを導入する必要が ある
Webフロントエンドにおける種類 ﹡ WebDriver 系 ◦ Selenium (Geb, Selenium WebDriver with
Concordion), WebdriverIO, Nightwatch.js, Testium, Protractor ﹡ (ヘッドレス) ブラウザ自動化系 ◦ Puppeteer, jsdom, Nightmare ﹡ (ヘッドレス) ブラウザ自動化 + テスト系 ◦ Cypress.io, TestCafe, Intern ﹡ Chrome 拡張 ◦ Ghost Inspector 12 E2E テスト自動化ツールをざっと調べたまとめ-Qiita ﹡ テストツールを導入す る必要がない ﹡ 最近ブームっぽい ﹡ ドキュメントが親切で 良かった
3. テストしてみる! コード解説
Cypress.ioを使いました 14
ToDos.tsx(JSXの部分だけ) 15
todos_spec.ts 16 describe(“The todos”, function(){ it("Assertion Text", () => {
const typeText = "texttexttext" cy.visit("/todos") .get("#text-field") .type(typeText) .should("have.value", typeText) }) ... })
cypress.json 17 { “baseUrl”: “http://localhost:3000” } baseUrl を設定しない場合テスト実行時に localhost+ランダムなポート番号でブラウザを開 き、テスト内部の
cy.visit() に当たってから指定されたURLに切り替えるため、テスト開 始時にフラッシュやリロードが入る。
CypressのIDEを立ち上げる 18 $ npx cypress open
テストが実行される 19
所感 20
驚くべき学習コストの低さ 21 ﹡ Cypress.io は Mocha, Chai, jQueryなどの人気で あり有名なツールや フレームワークで構
成されていて学習コ ストが低い
﹡ Canary ﹡ Chrome ﹡ Chromium ﹡ Edge ﹡ Edge
Beta ﹡ Edge Canary 22 Browsers対応すごい ﹡ Edge Dev ﹡ Electron ﹡ Firefox (Beta support) ﹡ Firefox Developer Edition (Beta support) ﹡ Firefox Nightly (Beta support) https://docs.cypress.io/guides/guides/launching-browsers.html#Browsers
スナップショットを撮ってくれる DOM操作の度にスナップショットをとってくれるため、デ バッグがしやすくなっている。 23
簡単だった!!!
Thanks! Twitter: schktjm Code: https://github.com/schktjm/e2e-test 25 Credit: https://www.cypress.io/ E2E テスト自動化ツールをざっと調べたまとめ-Qiita
cypressを触ってみた-Qiita