完全に理解した人達の「Web技術」Talk #1 https://easy2.connpass.com/event/161840/
Selenium完全に理解したTakuya Suemura @ Autify Inc.
View Slide
⾃⼰紹介末村 拓也(Takuya Suemura)QA / テスト⾃動化エンジニアというテスト⾃動化プラットフォームを作る会社で働いています
https://autify.com/ja/
テストしてる?https://martinfowler.com/bliki/TestPyramid.html
今⽇話すことWebのテストによく使われる Selenium という技術の話
Seleniumとはすごい昔からあるブラウザ操作⾃動化フレームワーク様々なブラウザを単⼀のAPIで操作できる複数のマシンでE2Eテストを並列実⾏することができるいくつかの技術の複合体Selenium WebDriverSelenium GridSelenium IDE
使うサーバを⽴てる必要がありますNodeなら selenium-standalone を使うと楽$ npm install -g selenium-standalone$ selenium-standalone install$ selenium-standalone starthttp://localhost:4444/wd/hub にサーバが⽴ちます
使うSelenium⾃体はブラウザの操作を抽象化しているだけなので、実際にテストコードを書くときは他のテストフレームワークを使うのが⼀般的です例:Selenide(Java)Geb(Groovy)Capybara(Ruby)RobotFramework(Python)WebdriverIO(Node)CodeceptJS(Node)
他のフレームワークと何が違うの?Seleniumはユーザーが実際に⾏う操作を⾃動化するところに重点を置いていて、それゆえにかゆいところに⼿が届かないことがある例えばCookieやGeolocationを編集できないブラウザ上で任意のJavaScriptを実⾏できるのでそれで解決することもあるが、HTTPヘッダの追加などは出来ないSeleniumは並列実⾏を強⼒にサポートしているZaleniumやSelenoidのようなコンテナを使った並列実⾏をするためのサードパーティツールも存在するなんやかんや実機のテストはSeleniumが強いIEとか……
似たようなツールたちPuppeteerCypressTestCafePlayWright <- NEW!などなど
Enjoy Testing!