ページを選択

API バインディング:Python

API バインディング:Python

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

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

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

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

上記の場所から ZIP をダウンロードし、選択したディレクトリに展開してください。Python のバインディングは 単一のファイル (“testrail.py”) で “python” サブディレクトリにあります。このファイルを “import” が見つけられるよう、アプリケーションまたはプロジェクトのディレクトリにコピーしてください。次のように API バインディングを使用します。

from testrail import *
 
client = 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 メソッドを使用してテスト ケースのプロパティを取得する方法を示しています。

client = APIClient('http://<server>/testrail/')
client.user = '..'
client.password = '..'
case = client.send_get('get_case/1')
pprint(case)

API バインディングはすべての GET リクエストに対応する「send_get」という名前の単一のメソッドを提供します。このメソッドは、任意のパラメーター (この場合はテスト ケースの ID) を含む TestRail API メソッドの名前 (この例では「get_case」) を受け取ります。戻り値は Python の dict および string で、UTF-8 エンコーディングを使用します。

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

例:POST リクエスト

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

..
result = client.send_post(
	'add_result_for_case/1/1',
	{ 'status_id': 1, 'comment': 'This test worked fine!' }
)
 
pprint(result)
..

“send_post” メソッドには “send_get” と同じプロパティがありますが、GET ではなく POST を使用して API リクエストを送信する点が異なります。“send_get” と同様に、 “send_post” はパラメーター (この例ではテスト ランの ID とケースの ID) を含めた TestRail API メソッドの名前 (この例では “add_result_for_case”) を期待します。戻り値は Python の dict です。POST 引数は、2番目のパラメーターとして、Python の dict (この例ではステータス ID とコメント) で追加します。文字列に期待されるエンコーディングは UTF-8 です。

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

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

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

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

result = client.send_get('get_attachment/1', 'C:\\attachment.jpg')

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

result = client.send_post('add_attachment_to_result/1', 'C:\\screenshot.jpg')