Chromeの自動操作ツール Puppeteer
みなさん、 Puppeteer はご存知でしょうか?Googleが開発している、Chromeの自動操作ツールです。
ブラウザの自動化ツールと言えば Selenium ですが、それと比べると ヘッドレス であるという大きな特徴があります。
「ヘッドレス」とは、画面を立ち上げることなしにブラウザを実行することを言います。Seleniumは多くのドライバーはヘッドレスではないため、GUIが描画できないコンソール環境で実行するには、仮想グラフィックドライバを導入するなど、かなりノウハウが必要でした。また、実際の描画処理を行うため動作速度も遅い、という特徴がありました。
Puppeteer はChromeのヘッドレスモードを利用するため、GUIを必要とせずテストを実行することができます。そのため、コンソール環境などでも比較的簡単にテストを実行することが可能です。また動作速度も描画処理が走らない分、非常に高速です。
Puppeteer 用の操作キャプチャツール Puppeteer recorder
このようにSeleniumにはない特徴を持つ優れたツールである Puppeteer なのですが、Seleniumには一つ大きなアドバンテージがありました。それは Selenium IDE という、ブラウザ上の操作をコードに変換するツールを持っていることです。
ブラウザ上での操作を記録するだけで簡易的なテストが書けてしまうのは非常に魅力的で、自動テストの導入に便利に使うことができます。
そしてとうとう、 Puppeteer にもそれに類するものがでてきました。それが Puppeteer recorder です。
実際にどのようなものか使ってみましょう。
Puppeteer recorder を試してみる
使用するためには、Chromeのアドオンとして追加する必要があります。以下からインストール可能です。
インストールして、アイコンをクリックすると以下のような画面が出てきます。 
そこで、 Record ボタンを押すと、実際にレコードが開始されます。

その後に Stop を押すと、レコードされたイベントが Puppeteer のコードの変換されます。 
実際に出力されるコードはこのようなものになります。async/await を活用した、かなりモダンなJavascriptコードとして出力されているのがわかります。実際に Puppeteer が利用できる環境であれば、このコードはそのまま実行させることは可能です。
まとめ
というわけで、 Puppeteer recorder を簡単に試してみました。Selenium IDE と非常に似たようなワークフローが Puppeteer でも可能なことが分かりました。システムテストを素早く効率的に実行するために、活用していけるのではないでしょうか。
[お知らせ]Puppeteer / Selenium だけでなく、ギルドワークスでは状況に応じて最適なツールを利用し、開発を進めています。こういったツールの導入についてのご相談に付きましても、お気軽にお問い合わせください。 お問い合わせ窓口
また、開発ツールだけでなく、プロセスを含めて開発組織自体をアップデートしたいというご要望も受け付けておりますお気軽にお問い合わせください。 開発組織2.0 -古くなってしまった開発組織を、 自分たちに最適な状態へアップデート-
この記事もどうですか?
-
「場合分け」の書き方あれこれ
ギルドワークスの増田です。 以前に書いた リファクタリングのエッセンス の続編です。 場合ごとのロジックの書き分け(条件分岐)は、プログラミングの基本ですね。if-then-else 構文は、良く使われる「場合分け」の記述方法です。 今回は…
-
チームで新しいことを始めたいが合意できない場合にすること
状況 チームで新しいことをやろうとすると「やることが増えて大変だ」「(やったことないけど)意味がないと思う」と声があがる。 そこで提案した人が反対の声を上げた人を説得しようとしている。 困り事 説得はパワーを使うし、時には心折れてしまって「…
- チーム
-
関西ITベンチャーの憂鬱と魅力
関西のエンジニア不足 大手IT企業の多くが首都圏に拠点を構えています。その結果、エンジニアとしての就職を目指し上京する地方出身の方や、「情報の最先端である東京で働きたい!」と思い上京する方を多く見てきました。 一方、近年では大阪の産業構成に…