ページを選択

API バインディング:Java

API バインディング:Java

Java 用の API バインディングは、Java および Java ベースの言語から TestRail の API にアクセスするために使用できます。API バインディングは、API リクエストを認証するための基本的な機能を提供するほか、シームレスな JSON および UTF-8 エンコード/デコードを提供し、一般的な読み取りおよび書き込みリクエストをサポートします。API バインディングの使用例については、以下を参照してください

このバインディングのソースコードは GitHub にあります。

Java 用 TestRail API バインディング (ZIP)
API バインディングを ZIP としてダウンロードできる GitHub リポジトリ

セットアップとインストール

上記の場所から ZIP をダウンロードし、選択したディレクトリに展開してください。Java のバインディングは、 “java” サブディレクトリにあります。含まれているパッケージをアプリケーションやプロジェクトに追加します (Eclipse などで) 。API バインディングは、JSON.simple ライブラリへの外部の依存関係もあります。ライブラリは次の場所からダウンロードできます。

https://code.google.com/p/json-simple/

次のように API バインディングを使用します。

import com.gurock.testrail.APIClient;
import com.gurock.testrail.APIException;
import java.util.Map;
import java.util.HashMap;
import org.json.simple.JSONObject;
 
public class Program
{
	public static void main(String[] args) throws Exception
	{
		APIClient client = new APIClient("http://<server>/testrail/");
		client.setUser("..");
		client.setPassword("..");
 
		..
	}
}

 注意: Web ブラウザーで TestRail にアクセス場合に使用する TestRail アドレスを API クライアントにも指定します (例:https://<your-name>.testrail.com/ または http://<server>/testrail/ など)

例:GET リクエスト

GET リクエストは読み取り専用の API メソッドによって TestRail からのデータの読み取りまたは照会に使用します。たとえば、次のコードは、 “get_case” API メソッドを使用してテスト ケースのプロパティを取得する方法を示しています。

APIClient client = new APIClient("http://<server>/testrail/"); client.setUser(".."); client.setPassword(".."); JSONObject c = (JSONObject) client.sendGet("get_case/1");
System.out.println(c.get("title"));

API バインディングはすべての GET リクエストに対応する「sendGet」という名前の単一のメソッドを提供します。このメソッドは、任意のパラメーター (この場合はテスト ケースの ID) を含む TestRail API メソッドの名前 (この例では「get_case」) を受け取ります。戻り値は単純なオブジェクト (JSONObject または JSONArray のいずれかのインスタンス) であり、返されたプロパティには “get” メソッドを使用してアクセスできます。

エラー (接続の問題、認証の失敗、API 引数の不足など) が発生した場合は例外がスローされることがあります。例外はコードで対処する必要があります。

例:POST リクエスト

POST リクエストは書き込みベースの API メソッドによって TestRail にデータを追加したり、TestRail のデータを更新するのに使用します。たとえば、次のコードは、 “add_result_for_case” API メソッドを使用してテスト結果を追加する方法を示しています。

..

Map data = new

HashMap

();
 data.put("status_id", new Integer(1)); data.put("comment", "This test worked fine!"); 
JSONObject r = (JSONObject) client.sendPost("add_result_for_case/1/1", data);
..

“sendPost” メソッドには “sendGet” と同じプロパティがありますが、GET ではなく POST を使用して API リクエストを送信する点が異なります。“sendGet” と同様に、 “sendPost” はパラメーター (この例ではテスト ランの ID とケースの ID) を含めた TestRail API メソッドの名前 (この例では “add_result_for_case”) を期待します。戻り値は単純なオブジェクト (JSONObject または JSONArray のいずれかのインスタンス) であり、返されたプロパティには “get” メソッドを使用してアクセスできます。POST 引数は、2番目のパラメーターとして、シリアライズ可能なオブジェクト、たとえば Map のインスタンス (この例ではステータス ID とコメント) で追加します。

エラー (接続の問題、認証の失敗、API 引数の不足など) が発生した場合は例外がスローされることがあります。例外はコードで対処する必要があります。

例:添付ファイル リクエスト

TestRail に添付ファイルを追加したり、TestRailから添付ファイルを取得したりする場合は、更新された API バインディングを使用してリクエストを行うことができます。

TestRailから添付ファイルを取得するときは、ダウンロードパスとファイル名をリクエストに含める必要があります。同じ名前のファイルが既に存在する場合は上書きされることがあります。’get_attachments_for_test’ などのAPIメソッドを使用して、既存のファイル名を取得できます。成功した場合、レスポンスにはダウンロード用のファイルパスが含まれます。

String s = (String) client.sendGet("get_attachment/1", "C:\\attachment.JPG");

添付ファイルを追加する場合、添付ファイルのパスとファイル名をリクエストに含める必要があります。

JSONObject j = (JSONObject) client.sendPost("add_attachment_to_result/1",
					"C:\\screenshot.JPG");