View
1.023
Download
1
Category
Preview:
DESCRIPTION
Citation preview
1
Selenium
2012/04/26 竹内 孝志
2
本日の内容
• Selenium について– Selenium とは?– SeleniumProject の紹介
• プロジェクトでの使用例– システム構成– 今後の改善案
3
Selenium とは?
• Web アプリケーション自動テストツール
• オープンソースソフトウェア• マルチブラウザに対応
4
Web アプリケーション自動テストツール
青: selenium 赤: sahi
5
歴史
年代 リリース
2004 年 Selenium 開発スタート
2006 年 SeleniumIDE リリース
2007 年 SeleniumRC リリース
2011 年 Selenium2(SeleniumWebDriver) リリース
アジャイルソフトウェア開発に特化した世界的な IT コンサルタント業者ThoughtWorks( そうとわーくす ) が開発
6
Selenium Project
• Selenium Core• Selenium IDE• Selenium RC• Selenium Grid• Selenium on Rails• CubicTest• Bromine• Selenium2(WebDriver)
7
Selenium Core
Selenium の中心的な機能
8
Selenium IDE
Firefox のプラグインブラウザ操作を記録テストコード自動生成
9
Selenium RC
リモートでブラウザ
操作を実行
10
構成
SeleniumIDE でテストコードを生成SeleniumRC でテストコードを実行
※ 公式より
11
対応ブラウザブラウザ Selenium-IDE Selenium-RC オペレーティングシステム
Firefox 31.0 Beta-1 および 1.0 Beta-2: テストの記録と再生
ブラウザの起動、テストの実行 Windows, Linux, Mac
Firefox 21.0 Beta-1: テストの記録と再生
ブラウザの起動、テストの実行 Windows, Linux, Mac
IE 8 開発中 Windows
IE 7Selenium-RC を介したテストの実行のみ *
ブラウザの起動、テストの実行 Windows
Safari 3Selenium-RC を介したテストの実行のみ
ブラウザの起動、テストの実行 Mac
Safari 2Selenium-RC を介したテストの実行のみ
ブラウザの起動、テストの実行 Mac
Opera 9Selenium-RC を介したテストの実行のみ
ブラウザの起動、テストの実行 Windows, Linux, Mac
Opera 8Selenium-RC を介したテストの実行のみ
ブラウザの起動、テストの実行 Windows, Linux, Mac
Google ChromeSelenium-RC を介したテストの実行のみ (Windows)
ブラウザの起動、テストの実行 Windows
上記以外Selenium-RC を介したテストの実行のみ 部分的サポートが可能 ** 該当 OS
12
メリット・デメリット
• メリット– 再テストの際に手間が少ない– 別ブラウザのテストが簡単にできる
• デメリット– マニュアルが不十分なため複雑な操作ができない– 画面に少しでも修正が入ると改修が必要になる
13
プロジェクトでの使用例
実例 )大規模データベース・マッチングサイト 毎月機能追加に伴うリリースを行っており、 その際に発生する回帰テストに Selenium を用いている。
14
開発サイクル
分析
設計
開発
テスト
分析
設計
開発
テスト
分析
設計
開発
テスト
1ヶ月 1ヶ月 1ヶ月
毎月回帰テストを行う
15
テストの構成(1)
Rspec
Selenium-WebDriver
ruby
1 2
① コマンドプロンプトから回帰テストを実行開始
② テストユニットを呼び出す
③Selenium がブラウザを操作
④ 作業者が結果を確認
16
テストの構成(2)
DB
テストデータ生成
テストケース実行( Rspec )
ブラウザ操作 (Selenium - WebDriver)
テストデータ
ruby
17
テストの構成(3)テストユニットdescribe " テストケース 1" do it_should_behave_like " ログイン " it_should_behave_like " 閲覧 " it_should_behave_like " ログアウト "enddescribe " テストケース 2" do it_should_behave_like " ログイン " it_should_behave_like " 問い合わせ " it_should_behave_like " ログアウト "enddescribe " テストケース 3" do it_should_behave_like " ログイン " it_should_behave_like " 購入 " it_should_behave_like " ログアウト "end
Selenium によるブラウザ操作shared_examples_for " ログイン " do |mail_address| it " ログインができること " do sleep 3 @browser.text_field(:name, "loginId").set "matatabi@nekomail.com" @browser.text_field(:name, "password").set "hogehoge" @browser.element(:xpath => "//div[2]/div[2]/div[4]/div/div[3]/input").click sleep 3 endend
18
現在の運用
• 良い点– テストコードが Ruby で簡潔に記述され理解しや
すい。– テストデータを自動生成できる。
• 悪い点– ローカルから実行するため特別な環境が必要。– 僅かな画面変更でテストコードの修正が発生。– テスト結果の確認が手作業で手間がかかる。
19
今後の改善
• 環境に依存せず誰でも実行可能にする。• 修正に少しでも強いコードに書き換え
る。• テスト結果を簡単に確認できるように
する。
20
環境に依存しないようにする
Jenkins が設置してあるサーバーに環境を構築し、
ボタン一つで実行可能にする。
でぷろい
回帰テスト
びるど
ワンクリックテスト
21
修正に強いコード
XPath で指定しているところを id で指定する。
@browser.element(:xpath => "/html/body/div[5]/div/input").click
@browser.element(:xpath => "//input[@id=‘nekoButton']").click
修正前)
修正後)
※ アプリケーションの作り上不可能な箇所は諦める。
22
確認作業の単純化
確認作業も Selenium で実施し、作業者は Selenium が取得した画面キャプチャーを確認するだけにする。
testcord
Selenium のテストコードがブラウザ画面のキャプチャーを保存
23
まとめ
• Selenium はアジャイル開発業者 ThoughtWorksが開発した
• 最も旬な Web アプリケーション開発ツールである。
• 我々のプロジェクトでは主要機能の回帰テストのみに使用している。
• 今後は誰でも簡単に実施できるよう改善する。
24
参考文献SeleniumHQ
http://seleniumhq.org/
Selenium 日本語ドキュメントhttp://oss.infoscience.co.jp/seleniumhq/docs/04_selenese_commands.html
Powerpoint テンプレートhttp://sagittarius.dip.jp/toshi/template.php
25
ご清聴ありがとうございました
Recommended