Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Selenium完全に理解した

tsuemura
January 29, 2020

 Selenium完全に理解した

完全に理解した人達の「Web技術」Talk #1
https://easy2.connpass.com/event/161840/

tsuemura

January 29, 2020
Tweet

More Decks by tsuemura

Other Decks in Programming

Transcript

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

    View full-size slide

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

    View full-size slide

  3. https://autify.com/ja/

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  11. Enjoy Testing!

    View full-size slide