読者です 読者をやめる 読者になる 読者になる

Selenium実践入門を献本いただきました!

書評

Selenium実践入門を技術評論社様から献本いただきました。ありがとうございます!(って、献本いただくって言い方は、あまりよくないんでしたっけ?)

Selenium実践入門 ―― 自動化による継続的なブラウザテスト (WEB+DB PRESS plus)

Selenium実践入門 ―― 自動化による継続的なブラウザテスト (WEB+DB PRESS plus)

以前仕事でGeb - Very Groovy Browser Automationを使っていたのですが、残念ながらメンテナンスを続けることができずに、途中でやめてしまったという苦い経験をしていました。ですが、とある事情から最近また使いたいなと思ってたところなので、個人的にすごくありがたいタイミングでした。


本書は、以下のような5部構成になっています。一度さくっと目を通しておいて、細かいところは実践しようとした際に本書をリファレンスとして活用するのがいいのかなと感じました。

  • Part 1 Seleniumの基礎知識
  • Part 2 WebDriver
  • Part 3 便利なライブラリ
  • Part 4 Seleniumのさまざまな活用方法
  • Part 5 実践的な運用

以下、いくつか気になった点をピックアップ。

ログ取得API

「現在ベータ版です」という補足もある通り、以前はなかった機能だと思いますが、すごく便利そうに思いました。コンソールに出力されたログを取得できるようです。具体的な利用シーンは、JSのエラーや画像などのリソース読み込みエラーの検知に使えそうだなと。

以前Gebのスクリプトをメンテできなくなったと触れましたが、その原因の一つが(少数のエンジニアしかいない状況で)Gebで細かいレベルのテストもしようとして、結局メンテがつらくなったということがありました。で、次やる場合はスモークテストに絞って主要パスだけを通すようなものを想定しているのですが、それでも最低限JSエラーや画像読み込みエラーなどは拾いたいと思ってます。そのときに、さくっと利用できるかなと想定してます。

FluentLenium

github.com
FluentLeniumというのも、初めて知りました。GebのようにSeleniumを手軽に書けるらしく、Play Frameworkでも採用されてるようです。

以前はGroovyの気軽さが好きでGebを選択した(もしかしたら、最初に導入したのは同僚だったかもしれないけど)のですが、今はJava8でJavaもだいぶ気軽に書ける部分も増えてきたし、やっぱりうちの社内だとJava知ってる人の方が多いので、今度はこっち使ってみようと考えています。

Jenkins Selenium Plugin

JenkinsのSelenium Pluginは、ソースコードはちょくちょく修正されてるけどリリースされてないから、ソースコードを自分でビルドしましょうって話。ただ、ちょっと試すのにさすがにそれはツライ気はしてます。で、自分で試してはいないのですが、Selenium PluginのGitHubリポジトリと紐付いてるCloudBeesのジョブに、ビルドの成果物としてhpiファイルが保存されているんですよね。

今現在のlastBuild(#55)は、masterをビルドしたものではなくこのプルリクエストをビルドしたものですが、このプルリクエストはバージョン上げてるだけっぽいので、これ使っても問題ないんじゃないかなあと推測。だれか検証してくれないかしら(著者のどなたかとか)

サイボウズの事例 - トラブル対応の属人性

属人性を避けるという基本方針を考慮しつつ、(プロダクト本体の問題とは直接関係ない)テスト環境依存のトラブル対応まで全員が対処できる必要があるのか?という問題提起が、事例紹介の最後にされてました。

この辺は、Jenkins職人とされている自分もまさに直面しているところです。今のところの自分の認識では、全員が対処できる必要はなくて数人が対処できるようになっておくぐらいが現実的なところかなというのは考えています。今後メンバーが更に増えてきたら、また認識も変わるかもしれませんけどね。