Table of Contents
その1
概要
- Selenium(日本語)で Web アプリのテストを自動化する。ここでは上記の「半角数字を漢数字に変換」をテストする。
- テストする値はローカルの設定ファイルから読み込む。(D:_temp\TestNumStr.json)
- テスト結果はローカルのファイルに保存する。(D:_temp\Result.txt)
Firefox 3.6.3にて動作確認。(2010/04/16, Selenium IDE 1.0.6)
- Selenium IDE で無限ループ - ヽ( ・∀・)ノくまくまー - s21g
ダウンロード
- TestNumStr.zip
- 「D:_temp\」に展開したときに動作するように作成しています。別の場所に配置する場合は適宜書き換えて下さい。
- LocalFileIO.js, isGood.js は Selenium の「オプション - 設定」から「Selenium IDE拡張スクリプトのパス」に登録して下さい。
Selenium テストケース
テスト値設定ファイル TestNumStr.json
{
'BaseURL': 'file:///D:/_temp/NumberString.html',
'PageTitle': 'NumberString',
'input1': '123456789',
'output1': '一二三四五六七八九',
'input2': '999999',
'output2': '九九九九九九',
'input3': '987654321',
'output3': '九八七六五四三二一'
}
ユーザー拡張スクリプト LocalFileIO.js
- File I/O - MDN
- CMLog :: Firefoxのjavascriptでローカルファイルにアクセスする方法まとめ
-
Selenium IDEで1つ1つのテストの処理時間を計測 (悪戦苦闘) - bonlife
// ローカルファイルの読み書き // Firefox専用 // http://cyprus.ex.nii.ac.jp/~kameda/blog/KMKM/KMKM0711030805.htm // modified by TakeAsh, 2010/04/16 function readFromFile( filePath ){ var data = ""; try { netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile); file.initWithPath(filePath); var fInStream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream); fInStream.init(file, -1, 0, 0); var charset = "UTF-8"; const replacementChar = Components.interfaces.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER; var cvtInStream = Components.classes["@mozilla.org/intl/converter-input-stream;1"].createInstance(Components.interfaces.nsIConverterInputStream); cvtInStream.init(fInStream, charset, 1024, replacementChar); var str = {}; while ( cvtInStream.readString(4096, str) ){ data += str.value; } cvtInStream.close(); } catch(e){ throw e; } return data; } function writeToFile( filePath, content, append ){ try { netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile); file.initWithPath(filePath); if (!file.exists()){ file.create(0, 0666); } var fOutStream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream); // https://developer.mozilla.org/ja/Code_snippets/File_I//O // 0x02:PR_WRONLY 0x10:PR_APPEND 0x20:PR_TRUNCATE var flag = 0x02 | ( (append) ? 0x10 : 0x20); fOutStream.init(file, flag, 0666, null); var charset = "UTF-8"; var cvtOutStream = Components.classes["\@mozilla.org/intl/converter-output-stream;1"].createInstance(Components.interfaces.nsIConverterOutputStream); cvtOutStream.init(fOutStream, charset, 0, 0x0000); cvtOutStream.writeString(content); cvtOutStream.close(); } catch(e){ throw e; } } // EOF
ユーザー拡張スクリプト isGood.js
function isGood( cond ){
return ( cond ) ? 'Good' : 'NG';
}
その2
概要
- Selenium(日本語)で Web アプリのテストを自動化する。ここではテスト項目の繰り返し、ドロップダウンリスト、チェックボックスをテストする。
- テストする値はローカルの設定ファイルから読み込む。(D:_temp\testSelenium.json)
- テスト結果はローカルのファイルに保存する。(D:_temp\resultSelenium.log)
- Firefox 3.6.3にて動作確認。(2010/04/26, Selenium IDE 1.0.6)
ダウンロード
- SeleniumTest.zip
- 「D:_temp\」に展開したときに動作するように作成しています。別の場所に配置する場合は適宜書き換えて下さい。
- LocalFileIO.js, isGood.js は Selenium の「オプション - 設定」から「Selenium IDE拡張スクリプトのパス」に登録して下さい。
Selenium テストケース
- testSelenium.html
- Headerの出力はループさせなくてもjoin('\t')でできるが、出力結果が複数箇所の場合に取り込んだ結果をループでまとめて出力させたいのでその雛形としてループを使っている。
テスト値設定ファイル testSelenium.json
{
'BaseURL': 'file:///D:/_temp/SeleniumTest.html',
'PageTitle': 'Seleniumテストサンプル',
'JobCondition': [
// Src1 Operation Src2 chkKanji Result
[ 3, '+', 4, 'off', 7, ],
[ 3, '+', 4, 'on', '七', ],
[ 3, '−', 4, 'off', -1, ],
[ 3, '−', 4, 'on', '−一', ],
[ 3, '×', 4, 'off', 12, ],
[ 3, '×', 4, 'on', '一二', ],
[ 3, '÷', 4, 'off', 0.75, ],
[ 3, '÷', 4, 'on', '〇.七五', ],
[ 1, '+', 0, 'off', 1, ],
[ 1, '+', 0, 'on', '一', ],
[ 1, '−', 0, 'off', 1, ],
[ 1, '−', 0, 'on', '一', ],
[ 1, '×', 0, 'off', 0, ],
[ 1, '×', 0, 'on', '〇', ],
[ 1, '÷', 0, 'off', 'Infinity', ],
[ 1, '÷', 0, 'on', '無限大', ],
[ 1, '+', 'a', 'off', 'NaN', ],
[ 1, '+', 'a', 'on', '非数値', ],
],
}
テスト結果 resultSelenium.log
PageTitle: Seleniumテストサンプル
BaseURL: file:///D:/_temp/SeleniumTest.html
TestDate: Tue Apr 27 2010 00:51:25 GMT+0900
Src1 Op Src2 Kanji Correct Actual Result
3 + 4 off 7 7 Good
3 + 4 on 七 七 Good
3 − 4 off -1 -1 Good
3 − 4 on −一 −一 Good
3 × 4 off 12 12 Good
3 × 4 on 一二 一二 Good
3 ÷ 4 off 0.75 0.75 Good
3 ÷ 4 on 〇.七五 〇.七五 Good
1 + 0 off 1 1 Good
1 + 0 on 一 一 Good
1 − 0 off 1 1 Good
1 − 0 on 一 一 Good
1 × 0 off 0 0 Good
1 × 0 on 〇 〇 Good
1 ÷ 0 off Infinity Infinity Good
1 ÷ 0 on 無限大 無限大 Good
1 + a off NaN NaN Good
1 + a on 非数値 非数値 Good