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 -古くなってしまった開発組織を、 自分たちに最適な状態へアップデート-
この記事もどうですか?
-
リーダーシップを取る人はプロジェクトの途中で変わってもいい
リーダーとは一度決まればずっと変わらないもの? チームでプロジェクトにあたる際に「リーダー」と呼ばれる人がいると思います。このリーダーはどのようにして決まっているのでしょうか?社内での肩書き?経験年数?これから挑むプロジェクトへの理解度でし…
-
タイムラインをつかっていこう!(後半)
この記事は、 ギルドワークス アドベントカレンダー の23日目の記事です。 今回は、ふりかえりの技法「タイムライン」をつかって良かったことを、お話しをしたいと思います。 #タイムラインについての説明は、 「タイムラインを使っていこう!(前半…
-
越境はいつだって1人から。でも、いつまでも1人ではない。
2018年秋、 TEDxKobe 2018 で話をしました。 この会のテーマは「Burning to Go!」。 情熱が奮い立つ一歩を選べ。今の自分を燃やして、突き進め。更なる飛躍を求めるとき。限界に縛られたとき。惑い、停滞したとき。自分の…
- 越境