Hatena::ブログ(Diary)

お前の血は何色だ!! 4 このページをアンテナに追加 RSSフィード Twitter

2009-09-10 selenium ide のテストケースからテストスイートを構築する

selenium ideテストケースからテストスイートを構築するバッチを作りました。

selenium ide は便利なんだけど、テストスイートが作りづらいよね。

↓こんな感じでテストケースをたくさん作ったのはいいけど、一括で動かしたいからテストスイートがほしい。

f:id:rti7743:20090911041403p:image

もちろん、テストケースからテストスイートを作成するぐらいは自動生成してほしい。

手作業で追加なんて思考停止がやることだ。

f:id:rti7743:20090911041404p:image


できれば、Windowsで且つ余計なソフトを入れたくない、、、ってことで、

windowsのバッチで作りました。

@echo off


rem 想定しているディレクトリ構成
rem 
rem 現在のディレクトリ
rem |
rem |------testcase
rem |           |----------テスト1
rem |           |----------テスト2
rem |           |----------テスト3
rem |
rem |testsuite ←作成するテストスイート
rem |このバッチファイル
rem 
rem 

rem テストスイートが入っているディレクトリ.
SET TESTDIRECTORY=testcase
rem 最終的に更新したいテストスイートのファイル名
SET TESTSUITEFILENAME=testsuite

echo "テストスイートを再構築します。よろしいですか?"
pause


rem テストスイートの作成..テンプレートがほしいね.
echo ^<?xml version="1.0" encoding="UTF-8"?^>>__temp__new_testsuite
echo ^<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"^>>>__temp__new_testsuite
echo ^<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"^>>>__temp__new_testsuite
echo ^<head^>>>__temp__new_testsuite
echo   ^<meta content="text/html; charset=UTF-8" http-equiv="content-type" /^>>>__temp__new_testsuite
echo   ^<title^>Test Suite^</title^>>>__temp__new_testsuite
echo ^</head^>>>__temp__new_testsuite
echo ^<body^>>>__temp__new_testsuite
echo ^<table id="suiteTable" cellpadding="1" cellspacing="1" border="1" class="selenium"^>^<tbody^>>>__temp__new_testsuite
echo ^<tr^>^<td^>^<b^>Test Suite^</b^>^</td^>^</tr^>>>__temp__new_testsuite


rem テストケースファイルを追加
for /F "delims=" %%i in ('dir /B /O:N %TESTDIRECTORY%\*.*') do  (
	echo %%i
	echo ^<tr^>^<td^>^<a href="%TESTDIRECTORY%/%%i"^>%%i^</a^>^</td^>^</tr^>>>__temp__new_testsuite
)	

echo ^</tbody^>^</table^>>>__temp__new_testsuite
echo ^</body^>>>__temp__new_testsuite
echo ^</html^>>>__temp__new_testsuite

rem SJISを utf8に変換
rem 参考:http://scripting.cocolog-nifty.com/blog/2008/12/cmdexeunicodeut.html
( set /p x="&#63731;&#63730;"<nul & cmd /u /c type __temp__new_testsuite ) >__temp__new_testsuite_utf16
start /min /wait cmd /c chcp.com 65001 ^& cmd /c type __temp__new_testsuite_utf16 ^>__temp__new_testsuite_utf8

move /Y __temp__new_testsuite_utf8 %TESTSUITEFILENAME%
del __temp__new_testsuite_utf16
del __temp__new_testsuite

echo "テストスイートの構築が完了しました"
pause

これをファイルに保存して、実行すると、testcase っていうディレクトリの中のファイルを名前順に昇順ソートして、テストスイートを作ってくれます。

このプログラムを作成するのに、Windows Script Programmingさんのcmd.exeとchcp.comだけで、文字コード(Unicode、UTF-8、UTF-7、JIS、EUC-JP、SJIS)を変換する! を参考にしました。

f:id:rti7743:20090911041405p:image

あとは、このファイルを selenium ide のテストスイートから読み込ませればこのとおり。

f:id:rti7743:20090911042700p:image

面倒な人のためにサンプルのzipもあるよ。

ご自由にどうぞ。

http://rtilabs.net/files/2009_09_11/sel.zip


追加。

あーーーはてなの余計なおせっかいでutf16のBOMが壊れているー。

↓ここ バグってんだろぉぉぉぉ

set /p x="&#63731;&#63730;"

不思議なことに引用だと破壊されないというww不思議ww仕様ww

set /p x=""

と、いうわけで、ソースのコピペはやめて zipから利用してください。