ページを選択

API バインディング:.NET

API バインディング:.NET

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

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

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

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

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

http://james.newtonking.com/json

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

using System;
using System.Collections.Generic;
using Gurock.TestRail;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
 
class Program
{
	static void Main(string[] args)
	{
		APIClient client = new APIClient("http://<server>/testrail/");
		client.User = "..";
		client.Password = "..";
 
		..
	}
}

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

例:GET リクエスト

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

APIClient client = new APIClient("http://<server>/testrail/");
client.User = "..";
client.Password = "..";
JObject c = (JObject) client.SendGet("get_case/4");
Console.WriteLine(c["title"]);

API バインディングはすべての GET リクエストに対応する「SendGet」という名前の単一のメソッドを提供します。このメソッドは、任意のパラメーター (この場合はテスト ケースの ID) を含む TestRail API メソッドの名前 (この例では「get_case」) を受け取ります。戻り値は単純なオブジェクト (JObject または JArray のインスタンス) であり、インデクサーを介して簡単に API レスポンスにアクセスできます (Dictionary の値にアクセスする方法と非常によく似ています)。

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

例:POST リクエスト

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

..
var data = new Dictionary<string, object>
{
	{ "status_id", 1 },
	{ "comment", "This test worked fine!" }
};
 
JObject r = (JObject) client.SendPost("add_result_for_case/1/1", data);
..

“SendPost” メソッドには “SendGet” と同じプロパティがありますが、GET ではなく POST を使用して API リクエストを送信する点が異なります。“SendGet” と同様に、 “SendPost” はパラメーター (この例ではテスト ランの ID とケースの ID) を含めた TestRail API メソッドの名前 (この例では “add_result_for_case”) を期待します。戻り値は単純なオブジェクトです (JObject または JArray のインスタンス)。POST 引数は、2番目のパラメーターとして、シリアライズ可能なオブジェクト、たとえば Dictionary<string, object> のインスタンス (この例ではステータス ID とコメント) で追加します。

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

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

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

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

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

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

JObject j = (JObject)client.SendPost("add_attachment_to_result/1", "C:\\screenshot.jpg");