第3回 日本Seleniumユーザーコミュニティ勉強会

 

かなり遅い投稿になりますが、、第3回 Seleniumユーザーコミュニティ勉強会に参加してきました。

初めての?勉強会だったけど、すぐにでも職場で使えそうなネタもあって、なかなか有意義な時間でした。

 

Opening session (TRIDENT 伊藤)

参加申し込み時に集計された、Selenium使用言語率。上から順にJavaSelenium IDE, Rubyと続い行く感じ。

自分が使っているPythonは8番目のかなり低めで、しょんぼり。多方面でJavaScriptの躍進が目立つので、覚えてみようかな。

WebスクレイピングでもSelenium利用者が増えているとのことだったけど、あんまりメリットがわからないかった。

www.slideshare.net

 

Seleniumデザインパターン & ベストプラクティス」の勘所

Seleniumデザインパターン&ベストプラクティスのさわりを説明してくれました。

アンチパターン

  • DRYテストパターン
  • Hermeticテストパターン

ベストプラクティス

依存関係を廃止

特にデータの依存。独立性が上がる!ただし、実行時間が上がるデメリットあり。

ランダム実行順序原則

暗黙的な依存関係を防ぎます、全体実行と単独実行をそれぞれ行うことで、暗黙的な依存関係を防ぎ、独立性が上がる。 何度も繰り返し動くが継続的デリバリには必須。

結論:いいパターンがいっぱいだよ!(時間切れ

www.slideshare.net

 

Selenium実践入門」で学ぶテスト自動化の世界

昔の自動試験

  • 商用開発環境が多い
  • Open sourceは少ない
  • Seleniumとかつかっていたのはサイボウズくらい

最近の自動試験

  • Selenium1 -> 2で安定化
  • 導入事例がWeb上でもかなり散見できるようになりましたよ

Selenium実践入門の内容

APIドキュメントにない内容もあるよ。

ファイルダイアログ、Basic認証、HTTPヘッダ、HTML5などなどややこしいマイナー機能。

Wrapperについても
  • Geb:Grooby
  • FluentLenium:Java
  • Appium
  • Selenium Grid
  • Capybara

そのほか盛りだくさん!Seleniumerは買うと幸せになれるよ!電子書籍もあるよ!

 

www.slideshare.net

 

E2Eテストフレームワークを使用したテスト自動化事例

E2Eテストフレームワークの選定から、導入までのお話。

E2Eテストフレームワーク

Nightwatch.js

Node.jsベース

Protractor

AngularJSに特化。自動待機APIがあって待機処理を明示的に指定する必要がない

ヘッドレスブラウザー

PhantomJS, Zombie,,,,,などなど

PhantomJSがメジャーなので、こちらを選択。技術情報多く、Nightwatch.js/Protractorでサポートされているらしいです。

ただ、結果的にPhantomJS固有に問題があって結構無駄が多いらしいです。その結果、Xvfbでリアルブラウザーのヘッドレス化!どれくらいパフォーマンスがよくなるんだろ。とは言え、安易にヘッドレスブラウザとか使うと良くないんだなあと。

www.slideshare.net

 

STFとAppiumをもちいたAndroidアプリの自動テスト

AWS Device FarmとかをLocal環境に建てれちゃう優れもの。ぬるぬるサクサクでビビる。

Appium使用者はまだそんなに多くない感じでした。そういう人はそれぞれのautomatorを使ってE2Eの試験を自動化しているのかな。

www.slideshare.net

 

Azureを使って手軽にブラウザテストの自動化をはじめよう

Azureに限らず、SeleniumでE2Eテストの自動化を行ったときのはまったところの紹介などをしてくれました。

テストケースのマネジメントとかテストケース駆動・テストデータ駆動のあたりは、あるあるだなあと思った。自分のところもテストスクリプトが増えてきてカオスな感じになってきているので、見直したいところ。

www.slideshare.net

 

Gebに実践入門するために

Gebの良いところと悪いところを説明してくれました。簡潔にかけて、わかりやすく書けるのが一番のメリットなのかな。

ただ、一方で学習コストが高く、敷居が高いと感じてしまうことが多いようです。

Selenium実践入門にもGebの章があるので、読んだ上で、Gebやろう!

 

エビデンス取るのも自動化したい!

テスターあるある、『テストエビデンスって証明するのつらいよね』を自動化しちゃいましょう。な、お話。

詳しくはGithubへ。

GitHub - sitoolkit/sit-wt-all

 

Selenium Antipatterns 

Selenium導入・運用時に陥りがちなアンチパターンを紹介してくれました。

とりあえずSelenium

Selenium、結構メンテコスト大きい。そして、実行時間長い。適切なところにSeleniumを使いましょう。、、適切って?

Selenium Pros/Cons

Pros

  • E2Eの自動化
  • 夜実行できます

Cons

  • メンテコスト
  • 不安定
  • 柔軟性

あるあるですね。ツール導入が目的になってしまって、やりたいことを見失うケース。可能な限り単体テストで実行し、E2Eでやらなきゃいけないことは減らしましょう。

手動テストの代わり

UIの変更でテストが通らなくなる。メンテが面倒なので、とりあえずマニュアルで試験。結果、メンテ不能。。

常にCI/CDを意識する必要がある。働き方が変わることを肝に命ずる。

クラスブラウザがんばりすぎ

全部でテストパスは非現実的。最終的にメンテコストで死亡。

対象は絞る。

Taasを利用する。

www.slideshare.net

 

Seleniumのうすいはなし 

つねに遊び心が必要。以上。でも実際、そういう人と仕事したいよね。。

音声合成エンジン(Voice Text)を使って、Jenkinsでjobがコケたときにそれを音声で通知する。っていうやつはすごく面白かった!

www.slideshare.net