Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

Nihonbashi Test Talk #3_WebDriver BiDiと最新の実装状況 ...

kishiken
December 04, 2024

Nihonbashi Test Talk #3_WebDriver BiDiと最新の実装状況 / WebDriver BiDi latest status

kishiken

December 04, 2024
Tweet

More Decks by kishiken

Other Decks in Technology

Transcript

  1. ⾃⼰紹介 岸 健(kishiken) ◆現在の所属 株式会社タイミー エンジニアリング本部 ◆GitHub https://github.com/takeyaqa ◆経歴 メーカー系SIer

    → 第三者検証   → 消費者向けアプリの⼀⼈⽬QA → 現職 ◆資格 Full Advanced Level Professional:テスト技術者資格Advanced Level 完全上級テスト技術者 ◆コミュニティ活動 テスト⾃動化研究会 (12/7にソフトウェアテスト⾃動化カンファレンスやるよ!) ◆趣味 ←机の整理整頓 3
  2. WebDriver BiDiとは? 従来のWebDriver (WebDriver “Classic”) は…… • 通信にHTTPを使⽤ ◦ 起点は⾃動化ツール側になり、ブラウザ側から処理を開始することができない

    • ⾼レベルのAPIを提供 ◦ ⾃動テスト⽤の操作(クリック、⼊⼒)などが中⼼ • W3Cで標準化されている ◦ 各ブラウザで同じ実装となるように仕様が定義されている 7
  3. WebDriver BiDiとは? ⼀⽅、Chrome DevTools Protocol (CDP) は…… • 通信にWebSocketを使⽤ ◦

    双⽅向通信なので、ブラウザ側のイベントで処理を開始することができる • 低レベルのAPIを提供 ◦ デバッグ⽤の機能を含む(通信の監視‧位置情報の設定など) • Chromeの独⾃仕様である ◦ 原則chromiumベースのブラウザにしか実装されていない。仕様も独⾃に変わっていく 8
  4. WebDriver BiDiとは? WebDriver “Classic”とCDPのいいとこ取りをしようというのがWebDriver BiDi • 通信にWebSocketを使⽤ ◦ 双⽅向通信なので、ブラウザ側のイベントで処理を開始することができる •

    低レベルのAPIを提供 ◦ デバッグ⽤の機能を含む(通信の監視‧位置情報の設定など) • W3Cで標準化されている ◦ 各ブラウザで同じ実装となるように仕様が定義されている 9
  5. WebDriver BiDiとは? まとめると…… WebDriver “Classic” CDP WebDriver BiDi 通信 HTTP

    WebSocket WebSocket API 高レベル 低レベル 低レベル 標準化 クロスブラウザ Chromiumのみ クロスブラウザ 10
  6. ⾃動化ライブラリの実装状況 Puppeteer 2023-12-06 v21.6.0 WebDriver BiDiでの接続をオプションとしてサポート開始 https://github.com/puppeteer/puppeteer/releases/tag/puppeteer-core-v21.6.0 2024-08-07 v23.0.0 FirefoxはデフォルトでWebDriver

    BiDiでの接続になる(Chromeは引き続きオプション) https://github.com/puppeteer/puppeteer/releases/tag/puppeteer-core-v23.0.0 ただし⼀部のAPIは未実装 (補⾜) 開発⾃体は2022年9⽉ごろからスタートしている https://github.com/puppeteer/puppeteer/pull/8932 15
  7. ⾃動化ライブラリの実装状況 Selenium CDPのコマンドを置き換える実装が進んでいる。起動 時のオプション設定でWebDriver BiDiが選択されるよ うになる。 https://www.selenium.dev/documentation/webdriver/bidi/ 同時にWebDriver Classicのコマンドも置き換える POCが進んでいる(Java)。

    POC: Porting WebDriver classic command to BiDi https://github.com/SeleniumHQ/selenium/pull/13190 現在これらはSelenium 5をマイルストーンとして開発が進んで いる。 https://github.com/SeleniumHQ/selenium/milestone/16 17
  8. 参考⽂献 次世代のブラウザテスト⾃動化プロトコルWebDriver BiDi https://zenn.dev/togami2864/articles/65af759b4a34f6 WebDriver BiDi Specification (Editor’s Draft) https://w3c.github.io/webdriver-bidi/

    A look book in time: the evolution of test automation https://developer.chrome.com/blog/test-automation-evolution WebDriver BiDi - The future of cross-browser automation https://developer.chrome.com/blog/webdriver-bidi WebDriver BiDi: 2023 status update https://developer.chrome.com/blog/webdriver-bidi-2023 Puppeteer Support for the Cross-Browser WebDriver BiDi Standard https://hacks.mozilla.org/2023/12/puppeteer-webdriver-bidi/ 19