Selenium

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

ご清聴ありがとうございました