Submit Search
Upload
ブラウザ自動化ツール カオスマップ風 - STAC2018 LT
•
Download as PPTX, PDF
•
7 likes
•
13,724 views
H
hnisiji
Follow
JavaScript のブラウザE2E系テストツールについてまとめました。
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 11
Download now
Recommended
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
SEGADevTech
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
ブルックスのいう銀の弾丸とは何か?
ブルックスのいう銀の弾丸とは何か?
Yoshitaka Kawashima
DeNA TechCon2019 How to implement live streaming client using Unity
DeNA TechCon2019 How to implement live streaming client using Unity
Takeyuki Ogura
【Unite Tokyo 2019】AWS for Unity Developers
【Unite Tokyo 2019】AWS for Unity Developers
UnityTechnologiesJapan002
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
Yoshiki Hayama
Guide To AGPL
Guide To AGPL
Mikiya Okuno
Recommended
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
SEGADevTech
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
ブルックスのいう銀の弾丸とは何か?
ブルックスのいう銀の弾丸とは何か?
Yoshitaka Kawashima
DeNA TechCon2019 How to implement live streaming client using Unity
DeNA TechCon2019 How to implement live streaming client using Unity
Takeyuki Ogura
【Unite Tokyo 2019】AWS for Unity Developers
【Unite Tokyo 2019】AWS for Unity Developers
UnityTechnologiesJapan002
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
Yoshiki Hayama
Guide To AGPL
Guide To AGPL
Mikiya Okuno
Fitnesse を用いたテストの効率化について
Fitnesse を用いたテストの効率化について
tecopark
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう
Daisuke Masubuchi
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
MagicOnion入門
MagicOnion入門
torisoup
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
sairoutine
暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
Naoya Kishimoto
テストコードの DRY と DAMP
テストコードの DRY と DAMP
Yusuke Kagata
GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方
Takeshi Mikami
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
Yasuharu Nishi
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Amazon Web Services Japan
WebRTC と Native とそれから、それから。
WebRTC と Native とそれから、それから。
tnoho
「ユーザーを理解するって言うほどカンタンじゃないよね」 UXデザイン・UXリサーチをもう一度ちゃんと理解しよう!
「ユーザーを理解するって言うほどカンタンじゃないよね」 UXデザイン・UXリサーチをもう一度ちゃんと理解しよう!
Yoshiki Hayama
プロトタイピングとユーザビリティテストで「UXデザイン」を練りあげよう! | UXデザイン基礎セミナー 第4回
プロトタイピングとユーザビリティテストで「UXデザイン」を練りあげよう! | UXデザイン基礎セミナー 第4回
Yoshiki Hayama
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
Amazon SageMakerでカスタムコンテナを使った学習
Amazon SageMakerでカスタムコンテナを使った学習
西岡 賢一郎
Twitter クライアント開発のすすめ #twtr_hack
Twitter クライアント開発のすすめ #twtr_hack
Mocel Mocelic
ゲームの自動テストを 作ってみた
ゲームの自動テストを 作ってみた
Yuusuke Takeuchi
More Related Content
What's hot
Fitnesse を用いたテストの効率化について
Fitnesse を用いたテストの効率化について
tecopark
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう
Daisuke Masubuchi
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
MagicOnion入門
MagicOnion入門
torisoup
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
sairoutine
暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
Naoya Kishimoto
テストコードの DRY と DAMP
テストコードの DRY と DAMP
Yusuke Kagata
GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方
Takeshi Mikami
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
Yasuharu Nishi
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Amazon Web Services Japan
WebRTC と Native とそれから、それから。
WebRTC と Native とそれから、それから。
tnoho
「ユーザーを理解するって言うほどカンタンじゃないよね」 UXデザイン・UXリサーチをもう一度ちゃんと理解しよう!
「ユーザーを理解するって言うほどカンタンじゃないよね」 UXデザイン・UXリサーチをもう一度ちゃんと理解しよう!
Yoshiki Hayama
プロトタイピングとユーザビリティテストで「UXデザイン」を練りあげよう! | UXデザイン基礎セミナー 第4回
プロトタイピングとユーザビリティテストで「UXデザイン」を練りあげよう! | UXデザイン基礎セミナー 第4回
Yoshiki Hayama
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
Amazon SageMakerでカスタムコンテナを使った学習
Amazon SageMakerでカスタムコンテナを使った学習
西岡 賢一郎
What's hot
(20)
Fitnesse を用いたテストの効率化について
Fitnesse を用いたテストの効率化について
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
MagicOnion入門
MagicOnion入門
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
暗号技術の実装と数学
暗号技術の実装と数学
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
テストコードの DRY と DAMP
テストコードの DRY と DAMP
GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
WebRTC と Native とそれから、それから。
WebRTC と Native とそれから、それから。
「ユーザーを理解するって言うほどカンタンじゃないよね」 UXデザイン・UXリサーチをもう一度ちゃんと理解しよう!
「ユーザーを理解するって言うほどカンタンじゃないよね」 UXデザイン・UXリサーチをもう一度ちゃんと理解しよう!
プロトタイピングとユーザビリティテストで「UXデザイン」を練りあげよう! | UXデザイン基礎セミナー 第4回
プロトタイピングとユーザビリティテストで「UXデザイン」を練りあげよう! | UXデザイン基礎セミナー 第4回
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Amazon SageMakerでカスタムコンテナを使った学習
Amazon SageMakerでカスタムコンテナを使った学習
Similar to ブラウザ自動化ツール カオスマップ風 - STAC2018 LT
Twitter クライアント開発のすすめ #twtr_hack
Twitter クライアント開発のすすめ #twtr_hack
Mocel Mocelic
ゲームの自動テストを 作ってみた
ゲームの自動テストを 作ってみた
Yuusuke Takeuchi
第3回 開発ツールチラ見せ♡ナイト オープニングプレゼン
第3回 開発ツールチラ見せ♡ナイト オープニングプレゼン
Tomoyuki Sugita
パワーユーザー必携の海外の拡張機能20選+α
パワーユーザー必携の海外の拡張機能20選+α
Akira Maruyama
a-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazaki
Etsushi Ishii
sensuのちょっと進んだ使い方
sensuのちょっと進んだ使い方
正貴 小川
Dev tools introduction
Dev tools introduction
Ryu Shindo
ツールを使い倒せ!公開版 : (Use the tool to defeat it! : Public version)
ツールを使い倒せ!公開版 : (Use the tool to defeat it! : Public version)
Mr. Vengineer
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
健一 辰濱
Hachiojipm31
Hachiojipm31
Junichiro Suzuki
RustでWebSocketな自社APIを使う
RustでWebSocketな自社APIを使う
Satoshi Yoshikawa
Chrome-eject がこの先生きのこるには
Chrome-eject がこの先生きのこるには
Yosuke HASEGAWA
[SC13] ログ管理で向上させるセキュリティ
[SC13] ログ管理で向上させるセキュリティ
de:code 2017
継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング
Takayuki Kondou
気が狂わないサーバ増設x10
気が狂わないサーバ増設x10
Kiyotaka Kunihira
Firefoxの開発ツール
Firefoxの開発ツール
Noritada Shimizu
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Study Group by SciencePark Corp.
Robotium を使った UI テスト
Robotium を使った UI テスト
健一 辰濱
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
Yoshito Tabuchi
速度改善のためにフロント:アプリ:インフラ エンジニアが使うツールについて
速度改善のためにフロント:アプリ:インフラ エンジニアが使うツールについて
Daisuke Tamada
Similar to ブラウザ自動化ツール カオスマップ風 - STAC2018 LT
(20)
Twitter クライアント開発のすすめ #twtr_hack
Twitter クライアント開発のすすめ #twtr_hack
ゲームの自動テストを 作ってみた
ゲームの自動テストを 作ってみた
第3回 開発ツールチラ見せ♡ナイト オープニングプレゼン
第3回 開発ツールチラ見せ♡ナイト オープニングプレゼン
パワーユーザー必携の海外の拡張機能20選+α
パワーユーザー必携の海外の拡張機能20選+α
a-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazaki
sensuのちょっと進んだ使い方
sensuのちょっと進んだ使い方
Dev tools introduction
Dev tools introduction
ツールを使い倒せ!公開版 : (Use the tool to defeat it! : Public version)
ツールを使い倒せ!公開版 : (Use the tool to defeat it! : Public version)
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
Hachiojipm31
Hachiojipm31
RustでWebSocketな自社APIを使う
RustでWebSocketな自社APIを使う
Chrome-eject がこの先生きのこるには
Chrome-eject がこの先生きのこるには
[SC13] ログ管理で向上させるセキュリティ
[SC13] ログ管理で向上させるセキュリティ
継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング
気が狂わないサーバ増設x10
気が狂わないサーバ増設x10
Firefoxの開発ツール
Firefoxの開発ツール
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Robotium を使った UI テスト
Robotium を使った UI テスト
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
速度改善のためにフロント:アプリ:インフラ エンジニアが使うツールについて
速度改善のためにフロント:アプリ:インフラ エンジニアが使うツールについて
ブラウザ自動化ツール カオスマップ風 - STAC2018 LT
1.
ブラウザ自動化ツール カオスマップ風 システムテスト自動化カンファレンス2018
2.
自己紹介 • Twitter アカウント:
@hnz • フロントエンドエンジニア • ここ数年テスト自動化ツールを開発
3.
発表の概要 • ブラウザ自動化ツール、たくさん • 自分のためにカオスマップ風に整理しました •
他にもおすすめのツールなどありましたらぜひおしえてください!
4.
5.
• JavaScript をページに流し込んでブラウザを操作する •
😃実行早め • 😃セットアップ簡単 • 😐マルチブラウザ対応はツールによりけり • Nightmare - https://github.com/segmentio/nightmare • Cypress - https://github.com/cypress-io/cypress • TestCafe - https://github.com/DevExpress/testcafe
6.
• Chrome や
Firefox の開発者ツールの API を 使ってブラウザを操作する • ☺️ セットアップがほぼ不要ですぐに使え る • ☺️ CI 環境で動かしやすい • 😐 多ブラウザ対応はできない • Puppeteer / Puppeteer for Firefox - https://github.com/GoogleChrome/puppeteer • Gauge - https://gauge.org/ • taiko.js - https://taiko.gauge.org/
7.
• ブラウザの動きを Node.js
で再現! • ☺️ ブラウザでしか動かない単体テストを CI上で気軽に実行できる • 😐 本物のブラウザではないので用途を選ぶ • Zombie.js - http://zombie.js.org/
8.
• ブラウザの拡張機能を作るための機能を使って、ブラウザを操作 • 😃他では自動化しにくいことが自動化できる •
😃Web 標準の機能を使っているのでマルチブラウザも期待できる • 😐まだ実用例が見当たらない • Remote Browser - https://github.com/intoli/remote-browser
9.
• ブラウザ自動操作のウェブ標準である Webdriver API
を利用 • 😃マルチブラウザ • 😃広く使われている • 😐セットアップが面倒(なのも多い) • 😐テスト実行のオーバーヘッド大きめ
10.
• selenium-webdriver -
https://seleniumhq.github.io/selenium/docs/api/javascript/index.html • Nightwatch.js - http://nightwatchjs.org/ • WebdriverIO - http://webdriver.io/ • Intern - https://github.com/theintern/intern • Leadfoot - https://github.com/theintern/leadfoot • Protractor - https://www.protractortest.org/ • WD.js - http://admc.io/wd/ • Gemini - https://github.com/gemini-testing/gemini • Nemo - http://nemo.js.org/
11.
まとめ • 何がいいかは時と場合によるので、いろいろ知っておきたいですね
Editor's Notes
少し自己紹介をさせてください。 名前は西島と言います。 このアイコンで Twitter をやっています。 JavaScript と CSS が得意なフロントエンジニアです。
それでは、本日のLTなのですが、ブラウザの自動化ツール、色々増えすぎていてわからん! ということで、カオスマップ風に整理してみました。 このLTでは、自分が整理してみたやつを紹介して、他にもこんなのあるよ、とか、そういうのをいただけると嬉しいな、と思っています。
というわけで、まとめてみました。 僕がJS系のエンジニアなので JS のやつです。 Github上でそこそこ星がついていて、今もメンテがされているやつをリストアップしたつもりです。 ツールの自動化のアーキテクチャと、ブラウザの互換性の観点で分類しています。 分類ごとに駆け足で紹介していきたいと思います。
まず、JavaScript Injection系。 これらのツールは、ブラウザについている自動化の機能を使うのではなく、JavaScript をページに流し込んで操作するアーキテクチャをとっています。実行が早く、セットアップが楽ですが、ブラウザの制約でできることが限られる場合もあり、思わぬところではまったりします。 マルチブラウザ対応はまちまちで、TestCafe はほとんどのブラウザに対応してますが、Nightmare は Electron の WebView 、Cypress はもろもろ対応予定はあるようですが現状 Chrome のみです。
次、devtool protocol 系。 これらのツールはChromeやFirefox の開発者ツールの機能を通してブラウザを操作する仕組みです。使いやすいですが、仕組み上マルチブラウザは期待できないです。 Puppeteer はよく使われているように思います。実験的ではありますが、 Firefox 実装もきのう公開されてかなり話題になっていました。 Gauge (ゲージ)は Thoughtworks が作っているテストフレームワークです。 中で使われている taiko.js が chromium と devtool protocol で動きます。個人的には結構イカすツールだと思っています。
次Headless Browser 系。 Phantom.js やSlimmer.js や Casper.js など、一時代を築いた Headless Browser はほとんどメンテが終了しているのですが、そんななか Zombie.js だけは元気です。 このツールはブラウザといっていいのかはわかりませんが、Headless browser を名乗っているのでリストアップしておきました。ちょっとスペース空いて見栄えも悪かったので。
次は、WebExtensions API を使っているやつ。 ブラウザの拡張機能を作るための Web 標準である、WebExtensions API を使ってブラウザを操作します。 複数のタブの同期的な処理など、他のツールでは難しいこともできるのではないかと思います。 ただ、まだ実用的かというと、そうでもないのが現状だと感じています。
最後、 Webdriver 系。Webdriver API というブラウザ操作のウェブ標準を使うやつです。 Yandex のビジュアルテスト用ツールのGemini 、Angular の Protractor、Paypal が作っている nemo は他の Webdriver 系ライブラリをもっと便利に使うためのツールなのでここに載せるかは迷いましたが、みっちり感を少しでも出したかったので入れました。 個人的なお気に入りは Intern とそのWebdriver クライアントの Leadfoot です。 TypeScriptでモダンな作りですし、セットアップ要らずで使えるのがすごく良いです。正直使われているのを見かけたことがないです。
Download now