狠狠撸

狠狠撸Share a Scribd company logo
Seleniumの薄っすい話	
 ?
百八式
2016年2月6日?戸田広
自己紹介
?? 戸田?広(とだ?ひろし)	
 ?@hiroshitoda	
 ?
?? 1979年生まれ	
 ?36歳	
 ?
?? Seleniumを触り始めたのは2013年4月頃から。	
 ?
?? 経験浅いので薄い話しかできません。	
 ?
?? 「Selenium実践入門」3つの章を担当しました。	
 ?
?? 10章	
 ?Selenium	
 ?IDE	
 ?
?? 12章	
 ?CI	
 ?
?? 13章 運用	
 ?
最近の俺と厂别濒别苍颈耻尘はアンケート的にはこんな感じ
今日話すこと
ラスト枠で時間が押してるはずなので、	
 ?
「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/wd
ProxyPassReverse /wd http://wd-hub.jp:4444/wd
SetOutputFilter INFLATE;proxy-html;DEFLATE
ProxyHTMLURLMap http://wd-hub.jp:4444/wd /wd
ProxyPass /grid http://wd-hub.jp:4444/grid
ProxyPassReverse /grid http://wd-hub.jp:4444/grid
SetOutputFilter INFLATE;proxy-html;DEFLATE
ProxyHTMLURLMap 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)でやりましょう。	
 ?
Seleniumの薄っすい話 百八式 @ 第3回 日本Seleniumユーザーコミュニティ勉強会
ご静聴	
 ?
ありがとうございました。
また年末~~~

More Related Content

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