seleniumの薄っすい話 百八式 @ 第3回 日本seleniumユーザーコミュニティ勉強会
Post on 08-Jan-2017
3.211 Views
Preview:
TRANSCRIPT
Seleniumの薄っすい話 百八式2016年2月6日 戸田広
自己紹介
• 戸田 広(とだ ひろし) @hiroshitoda • 1979年生まれ 36歳 • Seleniumを触り始めたのは2013年4月頃から。 • 経験浅いので薄い話しかできません。 • 「Selenium実践入門」3つの章を担当しました。 • 10章 Selenium IDE • 12章 CI • 13章 運用
最近の俺とSeleniumはアンケート的にはこんな感じ
今日話すこと
ラスト枠で時間が押してるはずなので、 「Selenium実践入門」に薄すぎて載せられなかった 5分くらいのお話を 切りの良いところまでやります。 (余ったのは2016年のAdvent Calendarのネタになります) 1. 「Selenium実践入門」校正をくぐり抜けて出版された小ネタ 2. 俺と音声合成 3. 俺とSelenium Gridハブがインターネットで特殊ノード 4. 俺とSelenium IDEでuser-‐extensions.jsに無理して詰め込め!!! 5. 俺とSelenium体操でWebDriver API
「Selenium実践入門」 校正をくぐり抜けて出版された小ネタ
Selenium実践入門 ――自動化による継続的なブラウザテスト
• 2016年2月2日発売 • 伊藤望,戸田広,沖田邦夫, 宮田淳平,長谷川淳,清水直樹, Vishal Banthia 著 • A5判/416ページ • 定価(本体3,300円+税) • ISBN 978-‐4-‐7741-‐7894-‐3
書籍完成までのワークフロー
• 「GitHubで雑誌・書籍を作る」に書かれていたとおり http://www.slideshare.net/inao/githubkaigi
• Markdownで原稿を書いてGitHub上でやりとり • MarkdownからInDesignに変換して書籍レイアウト編集 • ここでmd2inaoを使用? https://github.com/naoya/md2inao
• InDesignから出力した校正用PDFで校正
校正は第5校まで重ねられ、 細かいレベルでの 文言・表記チェックが 何度も繰り返された。 皆様ほんとうにありがとうございました。 お世話になりました。
それでも 載っちゃう 小ネタがある ほんとうにごめんなさい
12章 289ページ
12章 289ページ
• 4126 よいふろ
伊東に行くなら
ごめんなさい
• だが我々は、似たようなノリを どこか近くで知っているような気がする!
Appiumの既定の待ち受けポート
Appiumの既定の待ち受けポート
• 4723 IPAD
iPad
考えることはみんなだいたい同じ
• ユーモアを大事にしましょう。 ハードな仕事でもね。
俺と音声合成
Selenium実践入門 ――自動化による継続的なブラウザテスト
• 2016年2月2日発売 • 伊藤望,戸田広,沖田邦夫, 宮田淳平,長谷川淳,清水直樹, Vishal Banthia 著 • A5判/416ページ • 定価(本体3,300円+税) • ISBN 978-‐4-‐7741-‐7894-‐3
13章 319ページ
13章 319ページ
人の声で通知?
• 人間の聴覚は、 1kHzあたりによく聞こえるピークがあります。 • これは、人の声の周波数のピークとだいたい同じです。 • つまり、人の声でテスト結果を通知できると、 他の音声よりも効果的に注意を引くことができる と言えるわけです。 • ネタ以上のベネフィットがあるんですよ! ほんとうですよ! • と言って前の職場のCI環境で 社長の音声合成でいろいろとしゃべらせていましたけど あくまでベネフィットがあるからやってたんですよ!!! ほんとうですよ!!!!
日本語の音声合成が可能なソフト
• Open JTalk • Linuxサーバーに導入しやすい
• Softalk • ゆっくりしゃべるアレ • Linuxに導入するにはつらみ多い
• VoiceText • もやもやしゃべるアレ • 無料APIあるよ! • cURLがあればとりあえず使えるので今回はこれを紹介
• MacOS Xのsayコマンド • Macならこれが一番かんたん
VoiceTextやってみよう
• VoiceText Web API • https://cloud.voicetext.jp/webapi • 利用登録するとAPIキーがもらえます。 • 公式の利用サンプルがcURL!!! • 声のタイプによって名前がついています。 もやもやした音声は「SHOW」くん。
• 無料版で作った音声データは次が禁止事項なので要注意。 • 商用利用 • 二次利用 • 配布
VoiceTextやってみよう
$ curl "https://api.voicetext.jp/v1/tts" \ -‐o "VoiceText_sample_1.wav" \ -‐u “*****APIキーなので伏せ字*****" \ -‐d “text=きょうは、セレニウムの勉強会で、 ここ、ぎろっぽんミッドタウン に、やってきた、 と言うワケっす" \ -‐d "speaker=show” • もやもやしてる!
今日はSeleniumの勉強会ですよ?
• はい • Seleniumでよくあるエラーログを拾って、 失敗時にそれとなくしゃべってくれるように してみましょう!
SeleniumというよりはJenkins
• CI環境で、ビルド後処理を利用します。 • Jenkins であれば、 Post build task を併用しましょう。 https://wiki.jenkins-‐ci.org/display/JENKINS/Post+build+task 「ログに~~~という文字列が含まれていたら ~~~する」というビルド後処理を 設定できるようになります。 • Seleniumあるあるな処理例外はネタとして拾いやすい。 • NoSuchElementException • TimeoutException
Post build task
例文
• (FirefoxDriverでTimeoutExceptionが出たら) ファイヤーフォックスが、 また、動かなくなっちゃったみたいっす。 バージョンでも、上がったんっすかね。
• (Gitリポジトリーへのコミットを トリガーにしたジョブで NoSuchElementExceptionが出たら) 14時53分の、戸田ひろしのコミットのせいで、 ノー・サッチ・エレメントになったみたいっすよ。
ところで音声データの再生はどうするの?
• 手近のスピーカーから鳴らさないと聞こえないよな… • Jenkins Sounds plugin を使って、 再生ページを常時開いているPCで鳴らすとか、 https://wiki.jenkins-‐ci.org/display/JENKINS/Jenkins+Sounds+plugin 音声再生用のスレーブマシンを作ってそこで鳴らすとか。 • Raspberry PiをJenkinsスレーブにして音声再生させるのが 最近の俺的流行です。
• Linuxだとaplayコマンドで音声再生するのがかんたんですが、 実行ユーザーが内蔵音源を鳴らせる権限グループにいないと 鳴らせなかったりしますので気をつけましょう。
結論
• ユーモアを大事にしましょう。 ハードな仕事でもね。
俺とSelenium Gridハブが インターネットで特殊ノード
Selenium実践入門 ――自動化による継続的なブラウザテスト
• 2016年2月2日発売 • 伊藤望,戸田広,沖田邦夫, 宮田淳平,長谷川淳,清水直樹, Vishal Banthia 著 • A5判/416ページ • 定価(本体3,300円+税) • ISBN 978-‐4-‐7741-‐7894-‐3
• そろそろ うっとおしいわよ!!
12章 288ページ
Selenium Grid
• 実装としてはオーソドックスなRESTful Web API
• 既定では 4444/tcp などの独自のポートを使って HTTPで通信しています。
人情: Webプロキシ
• well-‐knownポート使ってないWebサービスは well-‐knownポートの皮をかぶせたくなるのが人情。
人情: 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
人情:インターネット
• well-‐knownポートなWebサービスは インターネットに公開したくなるのが人情。
人情:インターネット
• これは普通に動きます。 • ほんと普通…
人情:https
• インターネットに公開したWebサービスは httpじゃなくてhttpsにして暗号化したくなるのが人情。
人情:https
• これはできません! • ノードで指定できるハブへの接続プロトコルが、 現状、HTTP限定になっている。
人情:おうちに特殊なノードを作りたい(NATを越えたい)
• インターネットに公開されたWebサービスには おうちのノードからもつなぎたくなるのが人情。
人情:おうちに特殊なノードを作りたい(NATを越えたい)
• 一応可能です! • CIの基本環境をクラウドに置きつつ クラウドに置けないような環境を オンプレミスでカバーできなくもない。 • 俺的注意点はいくつかある。 • ハブから見えるIPアドレス(だいたいグローバルIPアドレス)を ノードに設定する必要があるので、おうちに固定IPがほしいずら…
• おうちのルーターにあんまり穴開けたくないずら…
• ノードが双方向通信じゃなくて、 ハブへの方向だけの片方向通信だったら楽なのになあ… • 15年くらい前にFTPのモードで似たようなこと言っていた気がする
結論
• Seleniumはおうち(LAN)でやりましょう。
ご静聴 ありがとうございました。 また年末~~~
top related