Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
E2E テスト入門
Search
Tajima Sachiko
July 18, 2020
Programming
520
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
130
エラーとアクセシビリティ
schktjm
2
1.9k
コンポーネントライブラリで実現する、アクセシビリティの正しい実装パターン
schktjm
4
1.7k
ゼロから始めるアクセシビリティ啓蒙活動
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.6k
Other Decks in Programming
See All in Programming
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
4
4.7k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
640
phperだってパンチカードでコーディングしたい
o0h
PRO
0
280
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
200
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
160
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
990
The Rails Doctrine Decade
koic
2
560
最近”作らせてる” ローカルAIアプリの話
akit37
0
450
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
370
速習iPhone Duo対応
yuukiw00w
2
980
Workers Cache を知る
syumai
0
350
golang-bob.pdf
iwatsukayura
0
130
Featured
See All Featured
Site-Speed That Sticks
csswizardry
13
1.6k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
930
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
430
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
300
The Pragmatic Product Professional
lauravandoore
37
7.5k
Speed Design
sergeychernyshev
33
2.2k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.3k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
The SEO Collaboration Effect
kristinabergwall1
1
590
Documentation Writing (for coders)
carmenintech
77
5.6k
Navigating Team Friction
lara
192
16k
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