seleniumの薄っすい話 百八式 @ 第3回 日本seleniumユーザーコミュニティ勉強会

46
Selenium の薄っすい話 百八式 201626日 戸田広

Upload: hiroshi-toda

Post on 08-Jan-2017

3.211 views

Category:

Software


3 download

TRANSCRIPT

Page 1: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

Seleniumの薄っすい話  百八式2016年2月6日 戸田広

Page 2: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

自己紹介

• 戸田 広(とだ ひろし)  @hiroshitoda  •  1979年生まれ  36歳  •  Seleniumを触り始めたのは2013年4月頃から。  • 経験浅いので薄い話しかできません。  • 「Selenium実践入門」3つの章を担当しました。  •  10章  Selenium  IDE  •  12章  CI  •  13章 運用  

Page 3: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

最近の俺とSeleniumはアンケート的にはこんな感じ

Page 4: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

今日話すこと

ラスト枠で時間が押してるはずなので、  「Selenium実践入門」に薄すぎて載せられなかった  5分くらいのお話を  切りの良いところまでやります。  (余ったのは2016年のAdvent  Calendarのネタになります)  1.  「Selenium実践入門」校正をくぐり抜けて出版された小ネタ  2.  俺と音声合成  3.  俺とSelenium  Gridハブがインターネットで特殊ノード  4.  俺とSelenium  IDEでuser-­‐extensions.jsに無理して詰め込め!!!  5.  俺とSelenium体操でWebDriver  API

Page 5: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

「Selenium実践入門」  校正をくぐり抜けて出版された小ネタ

Page 6: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

Selenium実践入門 ――自動化による継続的なブラウザテスト  

 •  2016年2月2日発売 • 伊藤望,戸田広,沖田邦夫,  宮田淳平,長谷川淳,清水直樹,  Vishal  Banthia 著 • A5判/416ページ • 定価(本体3,300円+税) •  ISBN  978-­‐4-­‐7741-­‐7894-­‐3  

Page 7: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

書籍完成までのワークフロー

• 「GitHubで雑誌・書籍を作る」に書かれていたとおり  http://www.slideshare.net/inao/githubkaigi  

• Markdownで原稿を書いてGitHub上でやりとり  • MarkdownからInDesignに変換して書籍レイアウト編集  •  ここでmd2inaoを使用?  https://github.com/naoya/md2inao    

•  InDesignから出力した校正用PDFで校正  

Page 8: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

校正は第5校まで重ねられ、 細かいレベルでの 文言・表記チェックが 何度も繰り返された。 皆様ほんとうにありがとうございました。 お世話になりました。

Page 9: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

それでも 載っちゃう 小ネタがある ほんとうにごめんなさい

Page 10: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

12章 289ページ

   

Page 11: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

12章 289ページ

• 4126  よいふろ  

Page 12: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

伊東に行くなら

Page 13: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

ごめんなさい

• だが我々は、似たようなノリを  どこか近くで知っているような気がする!  

Page 14: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

Appiumの既定の待ち受けポート

   

Page 15: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

Appiumの既定の待ち受けポート

• 4723  IPAD  

Page 16: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

iPad

Page 17: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

考えることはみんなだいたい同じ

• ユーモアを大事にしましょう。  ハードな仕事でもね。  

Page 18: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

俺と音声合成  

Page 19: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

Selenium実践入門 ――自動化による継続的なブラウザテスト  

 •  2016年2月2日発売 • 伊藤望,戸田広,沖田邦夫,  宮田淳平,長谷川淳,清水直樹,  Vishal  Banthia 著 • A5判/416ページ • 定価(本体3,300円+税) •  ISBN  978-­‐4-­‐7741-­‐7894-­‐3  

Page 20: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

13章 319ページ

Page 21: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

13章 319ページ

Page 22: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

人の声で通知?

• 人間の聴覚は、  1kHzあたりによく聞こえるピークがあります。  • これは、人の声の周波数のピークとだいたい同じです。  • つまり、人の声でテスト結果を通知できると、  他の音声よりも効果的に注意を引くことができる  と言えるわけです。  • ネタ以上のベネフィットがあるんですよ!  ほんとうですよ!  • と言って前の職場のCI環境で  社長の音声合成でいろいろとしゃべらせていましたけど  あくまでベネフィットがあるからやってたんですよ!!!  ほんとうですよ!!!!  

Page 23: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

日本語の音声合成が可能なソフト

• Open  JTalk  •  Linuxサーバーに導入しやすい  

•  Softalk  •  ゆっくりしゃべるアレ  •  Linuxに導入するにはつらみ多い  

•  VoiceText  •  もやもやしゃべるアレ  •  無料APIあるよ!  •  cURLがあればとりあえず使えるので今回はこれを紹介  

• MacOS  Xのsayコマンド  •  Macならこれが一番かんたん  

Page 24: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

VoiceTextやってみよう

•  VoiceText  Web  API  •  https://cloud.voicetext.jp/webapi  •  利用登録するとAPIキーがもらえます。  •  公式の利用サンプルがcURL!!!  •  声のタイプによって名前がついています。  もやもやした音声は「SHOW」くん。  

•  無料版で作った音声データは次が禁止事項なので要注意。  •  商用利用  •  二次利用  •  配布  

Page 25: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

VoiceTextやってみよう

$  curl  "https://api.voicetext.jp/v1/tts"  \            -­‐o  "VoiceText_sample_1.wav"  \            -­‐u  “*****APIキーなので伏せ字*****"  \            -­‐d  “text=きょうは、セレニウムの勉強会で、   ここ、ぎろっぽんミッドタウン に、やってきた、                   と言うワケっす"  \            -­‐d  "speaker=show”    • もやもやしてる!  

Page 26: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

今日はSeleniumの勉強会ですよ?

• はい  •  Seleniumでよくあるエラーログを拾って、  失敗時にそれとなくしゃべってくれるように  してみましょう!  

Page 27: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

SeleniumというよりはJenkins

•  CI環境で、ビルド後処理を利用します。  •  Jenkins  であれば、  Post  build  task を併用しましょう。  https://wiki.jenkins-­‐ci.org/display/JENKINS/Post+build+task  「ログに~~~という文字列が含まれていたら   ~~~する」というビルド後処理を  設定できるようになります。  •  Seleniumあるあるな処理例外はネタとして拾いやすい。  •  NoSuchElementException  •  TimeoutException  

Page 28: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

Post  build  task

 

Page 29: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

例文

• (FirefoxDriverでTimeoutExceptionが出たら)  ファイヤーフォックスが、  また、動かなくなっちゃったみたいっす。  バージョンでも、上がったんっすかね。  

• (Gitリポジトリーへのコミットを   トリガーにしたジョブで   NoSuchElementExceptionが出たら)  14時53分の、戸田ひろしのコミットのせいで、  ノー・サッチ・エレメントになったみたいっすよ。  

Page 30: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

ところで音声データの再生はどうするの?

• 手近のスピーカーから鳴らさないと聞こえないよな…  •  Jenkins  Sounds  plugin  を使って、  再生ページを常時開いているPCで鳴らすとか、  https://wiki.jenkins-­‐ci.org/display/JENKINS/Jenkins+Sounds+plugin  音声再生用のスレーブマシンを作ってそこで鳴らすとか。  •  Raspberry  PiをJenkinsスレーブにして音声再生させるのが  最近の俺的流行です。  

•  Linuxだとaplayコマンドで音声再生するのがかんたんですが、  実行ユーザーが内蔵音源を鳴らせる権限グループにいないと  鳴らせなかったりしますので気をつけましょう。  

Page 31: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

結論

• ユーモアを大事にしましょう。  ハードな仕事でもね。  

Page 32: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

俺とSelenium  Gridハブが  インターネットで特殊ノード  

Page 33: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

Selenium実践入門 ――自動化による継続的なブラウザテスト  

•  2016年2月2日発売 • 伊藤望,戸田広,沖田邦夫,  宮田淳平,長谷川淳,清水直樹,  Vishal  Banthia 著 • A5判/416ページ • 定価(本体3,300円+税) •  ISBN  978-­‐4-­‐7741-­‐7894-­‐3  

• そろそろ うっとおしいわよ!!  

Page 34: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

12章  288ページ

Page 35: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

Selenium  Grid

• 実装としてはオーソドックスなRESTful  Web  API  

• 既定では 4444/tcp などの独自のポートを使って  HTTPで通信しています。

Page 36: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

人情:  Webプロキシ

• well-­‐knownポート使ってないWebサービスは  well-­‐knownポートの皮をかぶせたくなるのが人情。  

Page 37: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

人情:  Webプロキシ

•  これは問題なく動作します。  •  Apache  HTTPDならプロキシ設定例はこんな感じかな~    ProxyPass /wd http://wd-hub.jp:4444/wdProxyPassReverse /wd http://wd-hub.jp:4444/wdSetOutputFilter INFLATE;proxy-html;DEFLATEProxyHTMLURLMap http://wd-hub.jp:4444/wd /wd

ProxyPass /grid http://wd-hub.jp:4444/gridProxyPassReverse /grid http://wd-hub.jp:4444/gridSetOutputFilter INFLATE;proxy-html;DEFLATEProxyHTMLURLMap http://wd-hub.jp:4444/grid /grid

Page 38: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

人情:インターネット

• well-­‐knownポートなWebサービスは  インターネットに公開したくなるのが人情。  

Page 39: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

人情:インターネット

• これは普通に動きます。  • ほんと普通…  

Page 40: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

人情:https

• インターネットに公開したWebサービスは  httpじゃなくてhttpsにして暗号化したくなるのが人情。  

Page 41: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

人情:https

• これはできません! • ノードで指定できるハブへの接続プロトコルが、  現状、HTTP限定になっている。  

Page 42: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

人情:おうちに特殊なノードを作りたい(NATを越えたい)

• インターネットに公開されたWebサービスには  おうちのノードからもつなぎたくなるのが人情。  

Page 43: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

人情:おうちに特殊なノードを作りたい(NATを越えたい)

• 一応可能です!  •  CIの基本環境をクラウドに置きつつ  クラウドに置けないような環境を  オンプレミスでカバーできなくもない。  • 俺的注意点はいくつかある。  •  ハブから見えるIPアドレス(だいたいグローバルIPアドレス)を  ノードに設定する必要があるので、おうちに固定IPがほしいずら…  

•  おうちのルーターにあんまり穴開けたくないずら…  

• ノードが双方向通信じゃなくて、  ハブへの方向だけの片方向通信だったら楽なのになあ…  •  15年くらい前にFTPのモードで似たようなこと言っていた気がする  

Page 44: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

結論

•  Seleniumはおうち(LAN)でやりましょう。  

Page 45: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会
Page 46: Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会

ご静聴  ありがとうございました。 また年末~~~