ページを選択

移行:CSV および Excel

移行:CSV および Excel

TestRail 4.1以降、TestRail にはさまざまな Excel/CSV 形式をサポートする Excel/CSV の直接インポート機能が含まれるようになりました。単純な Excel/CSV ファイルをインポートする場合は、こちらが推奨される方法になりました。このインポートオプションの詳細については、次を参照してください。
TestRail Excel/CSV インポート

このスクリプトを使用すると、CSV ファイル内の既存のテスト ケースを TestRail のテスト ケースに変換できます。Excel ファイルを変換することもできます。それにはまず CSV ファイルとして保存します (Excel で [ファイル] メニューの [名前を付けて保存] を選択します)。

テストケースを CSV/Excel ファイルに保存する方法については標準的なフォーマットがないため、スクリプトにデータの抽出方法を指示する必要があります。それには、 csv2testrail スクリプトから呼び出される簡単なフィルター ルーチンを作成し、CSV ファイルから実際のデータを抽出します。

データを変換したら、テスト ケースとセクションを TestRail にインポートできます。変換した XML ファイルを TestRail にインポートするには、空のテストスイートを作成してツールバーのインポート ボタンをクリックします。

ダウンロード

CSV & Excel 移行スクリプトの最新版は、次の場所からダウンロードできます。

 TestRail CSV Migration

CSVとExcelファイルをTestRailに移行するためのスクリプト

使用方法

> php csv2testrail.php <filter> <input-file> <output-file> [mode] [delimiter]

<filter-script> a PHP script to extract the CSV data for conversion.

<input-file> should be the filename of a CSV file with test cases
you want to convert (for example, an exported Excel file).

<output-file> specifies the filename of the resulting TestRail
import/export file.

[mode] An optional mode. The following modes are available:

  --export  The default behavior; exports the data to the XML file.
  --csv     For debugging: prints the CSV data as seen by the script
  --cases   For debugging: prints the cases after the filter script
            was called
  --tree    For debugging: prints the section/case tree after analyzing
            the cases and sections
            
[delimiter] Allows you to override the default comma delimiter.

カスタム フィルター

CSV ファイルには標準的なレイアウトがないため、実際のデータ抽出を行うには、簡単なフィルター ルーチンを作成する必要があります。CSV/Excel ファイルはそれぞれ異なるため、このようなフィルターが必要になります。たとえば、企業 A はケースのタイトルを列 1 に格納するが、企業 B ではタイトルを列 5 に格納するといった違いがありえます。テスト ケースに複数の行を使用する CSV ファイルなどもあります。

フィルター ルーチンを使用することで、csv2testrail スクリプトが非常に柔軟になり、ほぼどんな CSV ファイルおよび Excel ファイルでも機能します。フィルター ルーチンは PHP で書かれており、csv2testrail スクリプトによって呼び出されます。csv2testrail スクリプトを実行するときに、最初の引数としてカスタムフィルター ルーチンを含む PHP スクリプトを指定します。

このフィルタールーチンは非常に単純な形式です。custom_filter という関数を指定するだけです。唯一のパラメーターとして CSV データが渡されます。$csvパラメーターは、CSV ファイル内の行の配列です。各行は列の配列です。一般的な custom_filter.php スクリプトは次のようになります。


function custom_filter($csv)
{
	// Skip the first line
	unset($csv[0]);
 
	// Iterate rows and build cases
	foreach ($csv as $row)
	{
		// Create a new case and assign the various properties
		$case = array();
		$case['title'] = $row[0];
		$case['type'] = $row[1];
		$case['priority'] = $row[2];
 
		// Custom fields, such as Preconditions, Steps and
		// Expected Results
		$custom = array();
		$custom['preconds'] = $row[3];
		$custom['steps'] = $row[4];
		$custom['expected'] = $row[5];
		$case['custom'] = $custom;
 
		// The export script will automatically create the section
		// hierarchy for us. All we have to do is to specify the
		// sections for a test case in this format:
		//
		// "Section 1 > Section 2 > Section 3"
		$case['section'] = $row[6];
 
		// Add the cases to the list
		$cases[] = $case;
	}
 
	// Return all cases
	return $cases;
}

custom_filter 関数はケースの配列を返す必要があります。各ケースは、ケースの詳細を指定する連想配列で構成されています。たとえば、 $case[‘title’] 配列要素はケースのタイトルを指定します。ケースのプロパティとして配列を割り当てることもできます。すべての配列と値は XML に変換されます。たとえば、TestRail XML ファイルの custom 要素を指定するには、配列を $case[‘custom’] に割り当てます。したがって、ケースは次のようになります。


[35] => Array
	(
		[title] => Verify line spacing on multi-page document
		[type] => Other
		[priority] => 2
		[custom] => Array
			(
				[preconds] => Suspendisse ..
				[steps] => In vulputate ..
				[expected] => Massa sodales ..
			)
		[section] => Customization
	)

csv2testrail スクリプトは自動的にセクションとケースの階層を構築します。必要な処理は、各ケースのセクション パスを指定することだけです。たとえば、セクション Foo のサブセクションであるセクション Bar にケースを追加するには、次のように $case[‘section’] 要素を指定します。

Foo > Bar

このスクリプトは、必要にあわせて柔軟に CSV データをケースにマッピングでき、あらゆるデータ型をその場で簡単に変換することもできます。たとえば、CSV/Excelファイルに、 MANUALAUTO などの値を持つ Test Type という名前の列が含まれている場合、それらの値を FunctionalAutomated などの値を持つ TestRail の組み込み型に簡単に変換できます。方法については上級サンプルを見てください。

トラブルシューティング

このスクリプトは、フィルター ルーチンのトラブルシューティングに役立ついくつかのオプションをサポートしています。具体的には、オプションの [mode] 引数を使用して、スクリプト実行のさまざまな段階で移行スクリプトの内部データ構造を出力できます。以下のオプションがあります。

引数 説明
–export デフォルトの動作: データを XML ファイルにエクスポートし、追加情報を出力しません。
–csv そのままの CSV データを出力します。出力データは、フィルター ルーチンに $csv パラメーターとして渡されるデータそのままなので、さまざまなデータ列の $row インデックスを確認したい場合に特に便利です。
–cases csv2testrail スクリプトが呼び出された後のケースを出力します。csv2testrail スクリプトによって返されるデータです。
–tree ケースの section 値を分析した後のセクション/ケースツリーを出力します。

例:

次の例はダウンロード アーカイブに含まれています。

Simple

この例には、簡単な CSV ファイルとそれに対応するフィルター スクリプトが付属しています。CSV ファイルには、タイトル、種類、手順などのさまざまなテスト ケース フィールドが含まれています。フィルター スクリプトはデータを抽出し、正しい形式でケースを返します。サンプルの CSV ファイルを TestRail の XML ファイル形式に変換するには、 examples\simple ディレクトリから次のコマンドを実行します。

> php ../../csv2testrail.php custom_filter.php testdata.csv suite.xml

Advanced

このadvancedサンプルには、CSV ファイルとそれに対応するフィルター スクリプトが付属しています。simpleの例と同様に、CSV ファイルにはテスト ケース データが含まれています。ただし、一部のテストケースは、複数のテスト ステップ行を指定するために複数の行を使用しています。さらに、CSV ファイルには、Priority という名前のフィールドが含まれています。このフィールドは、TestRail の組み込み優先順位形式 (数値) に変換する必要があります。フィルター ルーチンは両方の問題を処理し、CSV ファイルを TestRail の XML ファイル形式に正しく変換します。

CSV ファイルを変換するには、 examples\advanced ディレクトリから次のコマンドを実行します。

> php ../../csv2testrail.php custom_filter.php testdata.csv suite.xml

Steps

この例は、上記のsimpleの例と似ていますが、テスト ケースのステップに steps カスタム フィールド タイプを使用する点が異なります。サンプルの CSV ファイルを TestRail の XML ファイル形式に変換するには、 examples\simple ディレクトリから次のコマンドを実行します。

> php ../../csv2testrail.php custom_filter.php testdata.csv suite.xml