この章では、OpenScriptユーティリティ・モジュールの使用手順について説明します。ユーティリティ・モジュールは、一般的に使用されるテスト機能を提供します。
utilities APIを使用して、CSVやXMLなどのテキスト・ファイルから値を読み込みます。次の項では、utilities APIの使用方法を説明します。
このユーティリティAPIには、getFileService()オブジェクトが含まれており、ファイルからのテキスト行の読込みやファイルへの追加などテキスト・ファイルを操作するためのメソッドがあります。次の例では、getFileServiceの使用方法を説明します。
ファイルからテキストを読み込むコードを追加するには、次のようにします。
スクリプト・プロジェクトを作成します。
Javaコード・ビューを開きます。
読み込むファイルを指定するreadLines()メソッドを追加します。次の例は、ファイルのテキスト行を解析し、OpenScriptコンソール・ビューに出力する方法を示します。
import java.io.File;
//[...]
String[] lines = utilities.getFileService().readLines("C:/Sample.txt");
for (String line : lines) {
info(line);
}
ファイルにテキストを追加するコードを追加するには、次のようにします。
スクリプト・プロジェクトを作成します。
Javaコード・ビューを開きます。
テキスト文字列を追加するファイルを指定する、appendStringToFile()メソッドを追加します。次の例では、新規ファイルを作成してそのファイルにテキスト行を追加する方法を説明します。
import java.io.File;
//[...]
utilities.getFileService().createDestinationFile("myFile.txt", false);
String line1 = "This is a new line 1";
String line2 = "This is a another new line 2";
String contents = "\n" + line1 + "\n" + line2;
utilities.getFileService().appendStringToFile("myFile.txt", contents);
このユーティリティAPIにはカンマ区切りテキスト・ファイルのデータを操作するためのloadCSV()オブジェクトが含まれます。
.CSVファイルからデータをロードして出力するコードを追加するには、次のようにします。
スクリプト・プロジェクトを作成します。
Javaコード・ビューを開きます。
読み込むファイルを指定するloadCSVメソッドを追加します。次の例では、ファイルC:\customer.csvにこのデータが含まれます。
FirstName,LastName,MiddleInitial John,James,R Mary,Simpson,J
次の例では、.CSVファイル内のテキストの表を解析し、値をOpenScriptコンソール・ビューに出力する1つの方法を示します。
import java.io.File;
import java.util.List;
//[...]
String filePath = "c:\\";
String csvFile = filePath + "fmstocks_data.csv";
File file = new File(csvFile);
Table table = utilities.loadCSV(csvFile);
//Print the CSV file
String columns = "";
int columnNumber = table.getColumns().getColumnCount();
String [] columnNames = table.getColumns().getColumnNames();
for (int index=0; index<columnNumber; index++)
columns += columnNames[index] + " ";
info(columns);
List <Row> rows = table.getRows();
for (int index=0; index<rows.size(); index++) {
String [] rowValue = rows.get(index).getAll();
String rowContent = "";
for (int columnIndex=0; columnIndex<rowValue.length; columnIndex++)
rowContent += rowValue[columnIndex] + " ";
info(rowContent);
}
このユーティリティAPIには、XML形式のテキスト・ファイルからテキストを読み込むためのloadXML()オブジェクトが含まれます。
.XMLファイルからテキストを読み込むコードを追加するには、次のようにします。
スクリプト・プロジェクトを作成します。
Javaコード・ビューを開きます。
読み込むファイルを指定するloadXMLメソッドを追加します。次の例では、ファイルC:\grocery.xmlにこのデータが含まれます。
<?xml version="1.0" encoding="utf-8"?> <Oceans> <ocean name="Arctic"/> <ocean name="Atlantic"/> <ocean name="Indian"/> <ocean name="Pacific"/> <ocean name="Southern"/> </Oceans>
次の例に、 .XMLファイル内のテキストの表を解析し、値をOpenScriptコンソール・ビューに出力する方法を示します。
XML xml = utilities.loadXML("C:/oceans.xml");
XML root = xml.getChildren()[0];
info(root.getTagName());
XML[] oceans = root.getChildren();
for (XML ocean : oceans){
info(ocean.getAttribute("name"));
}
データベースから値を取得するには、データベース定義、データベースSQL問合せまたはSQL実行、およびデータベースからの切断が必要です。この項では、手動でスクリプトにデータベース・アクションを追加する方法について説明します。プレーンSQLやPL/SQL文の.SQLスクリプト・ファイルからDBReplayキャプチャ・ファイルまたはSQL文をインポートしてOpenScript負荷テスト・スクリプトを生成するには、3.2.6項「データベース・キャプチャ・ファイルのインポート」を参照してください。
データベースから値を取得するには、次のようにします。
データベース・スクリプト・プロジェクトを作成します。
データベース定義を追加するノードを選択します。
「スクリプト」メニューを選択してから、「追加」サブメニューで「その他」を選択します。
「データベース」ノードを開き、「データベース定義」を選択します。
「OK」をクリックします。
データベース定義情報を指定します。
「テスト」をクリックし、正常に接続されることを確認します。
「OK」をクリックします。
データベース接続を追加するノードを選択します。OpenScriptデータベース接続メソッドはオプションです。データベース接続は実行または問合せメソッドの呼び出し時に自動的に起動されます。
「スクリプト」メニューを選択してから、「追加」サブメニューで「その他」を選択します。
「データベース」ノードを開き、「接続」を選択します。
データベース別名を選択し、「OK」をクリックします。
データベース問合せまたは実行文を追加するノードを選択します。
「スクリプト」メニューを選択してから、「追加」サブメニューで「その他」を選択します。
「データベース」ノードを開き、「SQL クエリ」または「SQL 実行」を選択します。
問合せまたは実行するSQL文を指定して、「追加」をクリックします。
パラメータに対し、データ・タイプを指定し、名前を定義します。
「OK」をクリックします。
「OK」をクリックします。
データベースの切断を追加するノードを選択します。
「スクリプト」メニューを選択してから、「追加」サブメニューで「その他」を選択します。
「データベース」ノードを開き、「切断」を選択します。
データベース別名を選択し、「OK」をクリックします。
Javaコード・ビューでは、各データベース・スクリプト・アクションのスクリプト・コードにutilities.getSQLService()メソッドが追加されます(コードとコメントが追加される)。
//define database
utilities.getSQLService().define("oracledb",
"oracle.jdbc.driver.OracleDriver", "00.000.000.000", "myuserID",
decrypt("ZgEQLMIUx8EVDAhfAenvyg=="));
//connect to database
utilities.getSQLService().connect("oracledb");
//execute SQL statement
String query = "Create table Employee (ID number(4) not null unique, " +
"FirstName varchar2(40) not null, LastName varchar2(40) not null, " +
"Country varchar2(40), HireDate date)";
info("Query: " + query);
utilities.getSQLService().execute("oracledb", query);
//execute update SQL statement
query = "Insert into Employee (ID, FirstName, LastName, Country, HireDate) " +
"Values (101, 'Tom', 'Smith', 'USA', '01-JAN-95')";
utilities.getSQLService().executeUpdate("oracledb", query);
//query SQL statement
query = "Select * from Employee";
Table table = utilities.getSQLService().query("oracledb", query);
//print table
for (int i=0; i<table.getRowCount(); i++) {
Row row = table.getRow(i);
String [] rowValue = row.getAll();
String rowContent = "";
for (int col=0; col<rowValue.length; col++)
rowContent += rowValue[col] + " ";
info(rowContent);
}
//disconnect from database
utilities.getSQLService().disconnect("oracledb");
このユーティリティ・モジュールには、有効なXMLファイルから選択した要素へのXPath式を生成するために使用できるXPathジェネレータ・ユーティリティが含まれます。
XPathジェネレータを使用するには、次のようにします。
XPath式の生成に使用するタグおよび値を含むXMLファイルを作成します。XPathジェネレータで使用できる単純なXMLファイルの例を次に示します。
<?xml version="1.0" encoding="utf-8"?> <Oceans> <ocean name="Artic"/> <ocean name="Atlantic"/> <ocean name="Indian"/> <ocean name="Pacific"/> <ocean name="Southern"/> </Oceans>
テスト・スクリプトを作成して記録します。機能テストおよび負荷テスト・スクリプト用の「ツール」メニューがOpenScriptメニュー・バーに表示されます。
「ツール」メニューから「XPaths 生成」を選択します。
「参照」をクリックし、ロードするXMLファイルを選択します。
XMLファイルの「タグ」セクションの下のXMLツリーを開きます。
XPathの生成に使用するXMLタグを選択します。生成されたXPathは/Oceans/ocean[1]/@nameのような形式で「XPath 式」フィールドに表示されます。
[Ctrl] + [C]および[Ctrl] + [V]のキーの組合せを使用して、生成したXPathをスクリプト・ビューの「Java コード」タブでメソッドにコピーおよび貼り付けます。
XPath式はユーティリティ findByXPath APIメソッドで、次のように使用することができます。
utilities.loadXML("filePath").findByXPath(xpath, xml)