サルでも書ける(?)
Seleniumの
自動実行スクリプト
(デモつき)
東平洋史
自己紹介
• 名前
東平洋史(とうへいひろふみ)
• 職業
ある会社のテスト設計者
• Selenium使用歴
2014/3/4(月)~
• 前歴
NTT 武蔵野通研→NTTコミュニケーショ
ンズ→某社→CTCシステムオペレーショ
ンズ
Seleniumとは?
• 原子番号34の元素
• 元素記号はSe
• 第16族元素
– 酸素と同族
– ハロゲンの隣
• 灰色セレン
– 金属セレン
– 六方晶系
– 融点は217.4℃
• 赤色セレン
–単斜晶系
では
なくて
Seleniumとは?
http://docs.seleniumhq.org/
• Webベースアプリケーション用テスト
自働化ツール
• ライセンスはApache 2.0 License
Seleniumで出来ること
• ユーザが行なった操作の記録・スク
リプト化
–クリック、ダブルクリック
–文字入力
など
• ユーザが行なった操作の再現実行
⇒ブラウザのテスト、自動実行
Selenium IDE(1)
• Seleniumのテストケース開発用ツー
ル
• Mozilla Firefox の add-on
http://docs.seleniumhq.org/downloa
d/
Selenium IDE(2)
ツールバー
テストケースペイン
ログ/リファレンス/UI-Element/Rollupペイン
メニューバー
Selenium IDE(3)
• ツールバー
1. Speed Control
実行速度調節
2. Run All
スクリプトをすべて
実行
3. Run
選択されているス
クリプトを実行
4. Pause/Resume
一時停止/再開
5. Step
コマンドをステップ
(一つずつ)実行
6. Record
ブラウザの操作を
記録
1
2
3
4
5 6
Selenium IDE使用例
ここで
実習
実習内容
次のテストを行なうスクリプトの作成
1. Googleで「小江戸らぐ」を検索
2. 次のページを表示
OSS支える!コミュニティー訪問~小江戸らぐ
- 川越を中心にゆるく活動するLinuxユー
ザー会
3. 写真をクリックして拡大表示
作成の手順
1.実行手順の記録
2.記録した手順の再生
3.修正
4.修正した手順の再生
5.ファイルへの保存
実行手順の
記録
記録した手順
コマンド 対象 値
open /
ype id=lst-ib 小江戸らぐ
click name=btnK
clickAndWait link=小江戸らぐ - 川越を中
心にゆるく活動するLinux
ユーザー会 - ITpro
click css=img[alt="小江戸らぐ"]
記録した
手順の再生
動かない
orz
なぜ自動実行に失敗するのか?
• 要素が表示されないうちに操作
– 人が操作する場合よりも速く操作
⇒表示が追い付いていない
• 操作対象の指定に失敗
HTMLタグの内容が替わる
– タグの段数(<div>など)
– 要素の数
など
修正 その1
• 要素が表示されないうちに操作⇒表示待ち
の処理を挿入
clickAndWait link=OSS..
↓
waitForElementPresent link=OSS..
clickAndWait link=OSS..
修正 その2
• 操作対象の指定に失敗⇒指定を変更
xPathが使えます
clickAndWait link=小江戸らぐ - 川越を..
↓
clickAndWait
//a[@href='http://itpro.nikkeibp.co.jp/article/
COLUMN/20131003/508665/']
修正後の手順
コマンド 対象 値
open /
type id=lst-ib 小江戸らぐ
click name=btnK
waitForElementPr
esent
//a[@href='http://itpro.nikkei
bp.co.jp/article/COLUMN/201
31003/508665/']
clickAndWait //a[@href='http://itpro.nikkei
bp.co.jp/article/COLUMN/201
31003/508665/']
click css=img[alt="小江戸らぐ
"]
修正した
手順の再生
動いた
\(^.^)/
更なる改良-変数
• 代入:storeコマンド
store https://www.google.co.jp/ baseURL
store 小江戸 koedo
• 参照:${変数名}
使い方は Perl 風
open ${baseURL}
こういう使い方も可能
${koedo}らぐ⇒小江戸らぐ
• Javascriptの実行結果代入
storeEval Javascript 変数
更なる拡張 – アドオン
• Flow Control
http://docs.seleniumhq.org/download/
– gotoifコマンド
gotoif 条件式 ラベル
コマンド
labe ラベル
– whileコマンド
while 条件式
コマンド
endWhile
Selenium WebDriver
http://docs.seleniumhq.org/projects/webdriver/
• プログラムからWebブラウザ制御
• 制御可能ブラウザ
– Internet Explorer、Mozilla Firefox、Google Chrome、
Opera、Android標準Webブラウザ、Safari(iOS)
• 使用可能言語
– Java、C#、Ruby、Python、Javascript(Node)
まとめ
• Selenium
– Webブラウザ自動実行用テストツール
– Apacheライセンス
• Selenium IDE
– Seleniumスクリプト作成用統合環境
– Mozilla Firefoxのアドオン
• Selenium WebDriver
– Webブラウザの自動実行制御
おしまい
(^.^)/~~~

サルでも書ける(?)Seleniumの自動実行スクリプト(デモつき)