私は
テスト自動化エンジニアであり、Selenium テストと連携して Web ブラウザーで実行する JSON を利用した「キーワード駆動型」のテスト システムを作成しています。
「キーワード」は XML ファイルとして保存されます。これらのキーワードを配列にロードし、そのキーワードのインデックスも保存する JavaScript 関数があります。paf.keywordIndex へ
例
$.get("getSteps.php", function(keywords) {
paf.keywords = eval(keywords); // stores into an array...
paf.keywordIndex = -1;
for ( var i = 0 ; i < paf.keywords.length ; i++ ) {
// for each path...
/* alert(paf.keywords[i]); */
$.ajax({url: "./_keywords/" + paf.keywords[i], success: function(xml) {
paf.xml = xml;
paf.keywordIndex++;
var title = $(xml).find("keyword").attr("title");
//var name = $(xml).find("keyword").attr("name");
paf.buffer += ("<option value=\"./_keywords/"+paf.keywords[paf.keywordIndex]+"\">"+title+"</option>");
},
async: false
//cache: false
});
}
$(stepSelectionLocator).html(paf.buffer);
});
getSteps.php
json 配列ですべての xml キーワードを返す php サービスです。例えば
["Login.xml","EndSession.xml", "SelectResult.xml", etc...]
現在、この関数は機能していますが、唯一の問題は、どのような方法でもソートされていないことです。したがって、出力は次のようになります-
- ログイン (Login.xml)
- 結果を選択する (SelectResult.xml)
- セッションを終了する (EndSession.xml)
この問題を解決するために、追加の属性を my に追加した<keyword>
ので<keyword area="basic">
、これが基本的な手順であることを示します。そして今、私の機能は -
$.get("getSteps.php", function(keywords) {
paf.keywords = eval(keywords); // stores into an array...
paf.keywordIndex = -1;
for ( var i = 0 ; i < paf.keywords.length ; i++ ) {
// for each path...
/* alert(paf.keywords[i]); */
$.ajax({url: "./_keywords/" + paf.keywords[i], success: function(xml) {
paf.xml = xml;
paf.keywordIndex++;
var title = $(xml).find("keyword").attr("title");
var area = $(xml).find("keyword").attr("area");
//var name = $(xml).find("keyword").attr("name");
paf.buffer.push(area.toUpperCase() + ": " + title);
},
async: false
//cache: false
});
}
paf.buffer.sort(); // array is sorted...
paf.buffer2 = "";
paf.keywordIndex = -1;
for ( var a in paf.buffer ) {
paf.keywordIndex++;
paf.buffer2 += "<option value=\"./_keywords/"+paf.keywords[paf.keywordIndex]+"\">"+ paf.buffer[a] + "</option>";
}
$(stepSelectionLocator).html(paf.buffer2.toString().replace(",", ""));
});
今、出力は
- BASIC: セッションを終了します (Login.xml)
- BASIC: ログイン (SelectResult.xml)
- 結果: 結果を選択します (EndSession.xml)
したがって、インデックスが問題であるとすでに判断しています。ただし、これを修正する方法がわかりません..
私は代替案を受け入れるので、これをインデックス化するためのより簡単な方法を見つけたら、私に知らせてください!