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

Seleniumに疲れたらTestCafeで休んでいきませんか

tsuemura
November 30, 2019

 Seleniumに疲れたらTestCafeで休んでいきませんか

システムテスト自動化カンファレンス2019 LT
https://testautomationresearch.connpass.com/event/144768/

tsuemura

November 30, 2019
Tweet

More Decks by tsuemura

Other Decks in Programming

Transcript

  1. Seleniumに疲れたらTestCafeで休んでいきませんか
    Takuya Suemura @ Autify Inc.

    View Slide

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

    View Slide

  3. https://autify.com/ja/
    ※今⽇はAutifyの話はしません

    View Slide

  4. 今⽇はTestCafeという
    E2Eテストフレームワークの紹介をします

    View Slide

  5. TestCafeについてざっくり
    https://github.com/DevExpress/testcafe
    ⽶DevExpress社が作ったNodeJS製ブラウザテストフレームワーク
    元々商⽤だったのが2016年にコア部分をOSSとして提供している
    Selenium(WebDriver)を使わず独⾃の実装(Javascript)でブラウザを動かす
    モバイルも含めたクロスブラウザテストが 3分で作れる

    View Slide

  6. 3分で作れるとかマ︖

    View Slide

  7. インストールはこれだけ
    npm install -g testcafe
    「ブラウザに対応したWebDriverをインストールして……」みたいなのは不要

    View Slide

  8. テストケース作成
    fixture `Getting Started`
    .page `http://devexpress.github.io/testcafe/example`;
    test('My first test', async t => {
    await t
    .typeText('#developer-name', 'John Smith')
    .click('#submit-button');
    });
    よくあるBDDライクな書き⽅ですね
    参考: https://devexpress.github.io/testcafe/documentation/getting-
    started/#performing-actions-on-the-page

    View Slide

  9. 実⾏
    $ testcafe all tests/sample-fixture.js
    ↑ この all はインストールされてる 全ブラウザ を指します

    View Slide

  10. View Slide

  11. モバイル実⾏
    $ testcafe remote tests/sample-fixture.js --qr-code

    View Slide

  12. URLと、そのQRコードがCLIに表⽰される
    このURLにアクセスすればモバイル含めどのブラウザでも実⾏可能

    View Slide

  13. Seleniumとは何が違うの︖

    View Slide

  14. TestCafe ≠ Selenium
    although webdrivers are developed by browser vendors, compatibility issues still
    appear from time to time.
    (WebDriverはブラウザベンダーが作ってるから互換性の問題がちょいちょい起き
    ててしんどみ)
    TestCafeはWebDriverを使わず、独⾃の実装で各ブラウザを動かしている
    「IEDriverにバグがあるけどIEDriverがメンテされなくてつらたん〜〜死ぬ〜〜」
    みたいなのを「おれたちが⾃分で作ってメンテする」メソッドで解決
    ⼒こそパワー
    他にも前述のリモート実⾏などの機能はWebDriverを使わないからこそ実現できる
    もの
    https://testcafe-discuss.devexpress.com/t/why-not-use-selenium-how-to-use-
    testcafe/47

    View Slide

  15. なんだよSeleniumとかオワコンじゃん
    TestCafeはTestCafeでバグがあることが……
    ⾃動操作⽤のJSをページ内に仕込む(多分)関係で、⼀部のJavascriptフレームワ
    ークが上⼿く動作しないことが過去にあった
    まあそれはWebDriverも同じだけどな︕
    ブラウザのバージョンアップで⽂鎮になることも……
    まあそれはWebDriverも同じだけどな︕
    WebDriverはなんやかんやW3Cで標準化されてるので未来がある

    View Slide

  16. いろいろ選択肢があってたのしいね

    View Slide

  17. Enjoy Testing!

    View Slide