.NET 用の API バインディングは、.NET (C# または VB.NET など) から TestRail の API にアクセスするために使用できます。API バインディングは、API リクエストを認証するための基本的な機能を提供するほか、シームレスな JSON および UTF-8 エンコード/デコードを提供し、一般的な読み取りおよび書き込みリクエストをサポートします。API バインディングの使用例については、以下を参照してください。
このバインディングのソースコードは TestRail API bindings GitHub repository にあります。:
-
- API バインディングを ZIP としてダウンロード : GitHub リポジトリ
セットアップとインストール
上記の場所から ZIP をダウンロードし、選択したディレクトリに展開してください。.NET のバインディングは、 “dotnet” サブディレクトリにあります。含まれているパッケージを Visual Studio でアプリケーションやプロジェクトに追加します。API バインディングは、Json.NET ライブラリへの外部の依存関係もあります。
次のように 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/
など)
API レート制限
すべてのユーザーに最適なパフォーマンスを保証するため、TestRail Cloud では、API はレート制限されており、リクエストが絞られる場合があることに注意してください。また、TestRail は 429 Too Many Requests レスポンスを返す場合があり、ユーザーはこれに対処する必要があります。
TestRail Cloud でレート制限を避けるには、一括 API エンドポイントを使用したり (add_results_for case ではなく add_results_for_cases を使用するなど)、API 呼び出しの間に遅延時間を設けることを検討してください。
注意:TestRail Server には API レート制限は組み込まれていません。
例:GET リクエスト
GET リクエストは読み取り専用の API メソッドによって TestRail からのデータの読み取りまたは照会に使用します。たとえば、次のコードは、 get_case API メソッドを使用してテスト ケースのプロパティを取得する方法を示しています。
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 引数の不足など) が発生した場合は TestRailAPIException 型の例外がスローされることがあります。例外はコードで対処する必要があります。
例:POST リクエスト
POST リクエストは書き込みベースの API メソッドによって TestRail にデータを追加したり、TestRail のデータを更新するのに使用します。たとえば、次のコードは、 add_result_for_case API メソッドを使用してテスト結果を追加する方法を示しています。
.. 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 引数の不足など) が発生した場合は TestRailAPIException 型の例外がスローされることがあります。例外はコードで対処する必要があります。
例:添付ファイル リクエスト
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");