Slide 1

Slide 1 text

Selenium完全に理解した Takuya Suemura @ Autify Inc.

Slide 2

Slide 2 text

⾃⼰紹介 末村 拓也(Takuya Suemura) QA / テスト⾃動化エンジニア というテスト⾃動化プラットフォームを作る会社で働いています

Slide 3

Slide 3 text

https://autify.com/ja/

Slide 4

Slide 4 text

テストしてる? https://martinfowler.com/bliki/TestPyramid.html

Slide 5

Slide 5 text

今⽇話すこと Webのテストによく使われる Selenium という技術の話

Slide 6

Slide 6 text

Seleniumとは すごい昔からあるブラウザ操作⾃動化フレームワーク 様々なブラウザを単⼀のAPIで操作できる 複数のマシンでE2Eテストを並列実⾏することができる いくつかの技術の複合体 Selenium WebDriver Selenium Grid Selenium IDE

Slide 7

Slide 7 text

使う サーバを⽴てる必要があります Nodeなら selenium-standalone を使うと楽 $ npm install -g selenium-standalone $ selenium-standalone install $ selenium-standalone start http://localhost:4444/wd/hub にサーバが⽴ちます

Slide 8

Slide 8 text

使う Selenium⾃体はブラウザの操作を抽象化しているだけなので、 実際にテストコードを書くときは 他のテストフレームワークを使うのが⼀般的です 例: Selenide(Java) Geb(Groovy) Capybara(Ruby) RobotFramework(Python) WebdriverIO(Node) CodeceptJS(Node)

Slide 9

Slide 9 text

他のフレームワークと何が違うの? Seleniumはユーザーが実際に⾏う操作を⾃動化するところに重点を置いていて、それゆえにか ゆいところに⼿が届かないことがある 例えばCookieやGeolocationを編集できない ブラウザ上で任意のJavaScriptを実⾏できるのでそれで解決することもあるが、HTTPヘッダ の追加などは出来ない Seleniumは並列実⾏を強⼒にサポートしている ZaleniumやSelenoidのようなコンテナを使った並列実⾏をするためのサードパーティツールも 存在する なんやかんや実機のテストはSeleniumが強い IEとか……

Slide 10

Slide 10 text

似たようなツールたち Puppeteer Cypress TestCafe PlayWright <- NEW! などなど

Slide 11

Slide 11 text

Enjoy Testing!