TestRail(テストレール)は、テストケースと実行結果をWeb上で一元管理する商用のテスト管理ツールです。Excelに散らばりがちな「どのケースを、どの版で、誰が、どう確認したか」を1か所に集め、進捗と不具合をその場で追えるようにします。この記事では2026年10月25日時点の料金、テストランの考え方、最新版10.9とAI機能、APIとtrcliで自動テストの結果を取り込む手順を、trcliが実際に何回APIを呼ぶかの実測とあわせて整理します。
まとめ
- TestRailはGurock Software(2004年創業)が開発するテスト管理ツール。国内はテクマトリックスが総販売代理店として日本語版を扱う。
- 公式の単価は年払いで1ユーザー月額Essentials $22(Cloudのみ・5人まで)、Professional $38、Enterprise $78。月払いはEssentialsとProfessionalだけで、ページ内の価格表では$25と$41。全プランに30日間の無料トライアルがある。
- Cloudの最新版は2026年10月14日に一般配信された10.9.0。AIによるテストケース生成・スクリプト生成・優先度付けは全プランに含まれるが、Cloud専用でオンプレミス版(Server)では使えない。
- 管理の単位は「テストケース(設計)」と「テストラン(実行の記録)」の2層。ランをクローズすると結果が保存され、その後のケース変更の影響を受けなくなる。
- 公式CLIのtrcliは、TestRail側に未登録のテストを1件ずつ作るため、600件の初回取り込みで619回のAPI呼び出しになった(モックでの実測)。Essentialsの毎分100回の上限では6分以上かかるので、初回はケースを先に用意する。
TestRailの基本構造:テストケースとテストランの関係
TestRailでまず押さえるのは、テストの「設計」と「実行」を別のオブジェクトとして持つ点です。テストケースは手順と期待結果を書いた設計書で、テストランはそのケースを特定の版・環境で実行した記録です。内容が固まるのはランを作ったときではなく、クローズしたときです。公式ヘルプのClosing test runs and plansによると、ランをクローズすると結果が保存され、以後にケースを直してもそのランの記録には反映されず、新しい結果も追加できなくなります。保守開発で「前回のリリースで何を確認したか」を後から説明する必要があるなら、リリース判定が済んだランは必ずクローズします。
| 要素 | 役割 | 実務での切り方 |
|---|---|---|
| プロジェクト | 管理の最上位 | 製品・システムごとに1つ |
| スイート/セクション | ケースの入れ物と階層 | 機能・画面単位 |
| テストケース | 手順と期待結果 | 優先度・種別をフィールドで付与 |
| テストラン | ケースの実行記録 | 版・スプリントごとに作成 |
| テストプラン | 複数ランの束 | ブラウザ・OSの構成ごとに一括生成 |
| マイルストーン | リリースの期日 | ラン・プランを紐付けて進捗を集計 |
ラン内の各テストには、既定でPassed・Blocked・Untested・Retest・Failedの5つのステータスが付きます。マイルストーンにランを所属させると、リリース単位の消化率と失敗件数がダッシュボードに出るため、判定会議で「確認が何割終わったか」を即答できます。要件からテストまでの紐付けを設計段階から考えるなら、要件・設計・テストを紐付けるトレーサビリティの実装手順が参考になります。
TestRailの料金:3プランの単価と月払い・年払いの違い
公式の料金ページ(2026年10月25日取得)の表示は次のとおりです。月払いの列は、ページに埋め込まれた価格表の値です。
| プラン | 年払い(月額換算) | 月払い | 提供形態 | ユーザー数 | CloudのAPI上限 |
|---|---|---|---|---|---|
| Essentials | $22 | $25 | Cloudのみ | 5人まで | 100回/分 |
| Professional | $38 | $41 | Cloud/Server | 無制限 | 180回/分 |
| Enterprise | $78 | なし(年払いのみ) | Cloud/Server | 無制限 | 300回/分 |
1巡目の取材時(2026年9月)には同じページのFAQに$37・$74という別の年払い単価が載っていましたが、10月25日時点ではFAQもカードと同じ$22・$38・$78に揃っています。Professionalを10人で使う場合、表示単価$38から計算した年額は$4,560です。ページの料金計算機は月額の価格表から割り引いて合計を出すため、人数を入れた合計がこの掛け算と数ドルずれることがあります。契約金額は人数と支払い周期を指定した購入画面で確認してください。
EnterpriseではSSO(SAML/OAuth/OIDC)、多要素認証、監査ログ、テストケースのバージョン管理とレビュー承認が加わります。オンプレミス版はProfessional以上で、10席以上・12か月契約が条件です。無料プランはありませんが、30日間のトライアルはクレジットカードなしで始められます。
国内のテクマトリックス経由で買う場合、同社の価格ページはProfessional・Enterpriseのオンプレミス版とクラウド版のいずれも「お問い合わせください」で、円建ての金額は公開されていません。円建ての請求や日本語の窓口が要るなら代理店、ドル建てでよければ公式から買います。
TestRailの最新版とAI機能:10.9とCloud専用の3機能
Cloud版の最新はTestRail 10.9.0(ビルド1032)で、早期提供が2026年10月6日、一般配信(Default track)が10月14日です。同じ10.9.0はServer版とDockerイメージでも出ています。一方、テクマトリックスの日本語版は2025年11月17日発表の9.4.1が最新で、本家とはメジャー版が1つ違います。日本語UIと国内サポートを取るか、10系の新機能を取るかで購入経路が分かれます。
公式トップが「AI-Driven」を掲げているとおり、2025年以降の追加機能はAIが中心です。料金ページのFAQは、AIによるテストケース生成・BDDシナリオ生成・スクリプト生成・優先度付けとMCP Serverを全プランに含むとしています。ただしServer版とCloud版の比較表では、主要なAI機能はServerで使えません。
| 機能 | 追加された版 | Cloud | Server |
|---|---|---|---|
| AI Test Case Generation | 9.5 | ○ | × |
| AI Test Script Generation | 10.2(ベータ) | ○ | × |
| AI Test Prioritization | 10.5系 | ○ | × |
| AI Evaluation Template | 10.3系 | ○ | ○ |
| TestRail MCP Server | 未正式 | クローズドベータ | 2026年Q4予定 |
テストケース生成は要件・ユーザーストーリー・Jiraの課題から構造化されたケースを作り、スクリプト生成は既存のケースから自動テストのひな形を作ります。優先度付けは実行履歴・紐付いた不具合・ラベルからランの中のテストをリスク順に並べる機能で、10.5.1のリリースノートでもCloud専用と明記されています。管理者はAI HubでAI機能をインスタンス・プロジェクト・ロールの単位で無効にできるので、要件書を外部のAIに渡せない案件では、導入時にこの設定を先に決めておきます。データを社外に出せないためServerを選ぶ組織は、AI機能が無い前提で比較してください。
TestRailの使い方:導入からテスト実行・レポートまで
トライアル直後の初期設定
トライアルを始めたら、最初に次の3つを決めます。
- ユーザーを招待し、ロール(テスター、リーダーなど)で権限を分ける。
- プロジェクトを作り、機能や画面の単位でセクションを切る。
- ケースのフィールド(優先度、種別、自動化の有無など)を自チームの運用に合わせる。
フィールドは後から変えると既存ケースの付け直しになるので、ここに一番時間をかけます。Excelのケースは列をフィールドに対応させてからCSVで一括インポートします。trcliで自動テストを取り込む予定があるなら、この段階でテキスト型のカスタムフィールド automation_id も作っておきます(理由は後述のtrcliの章)。
テストケースの書き方と再利用
ケースは「前提条件・手順・期待結果」を分けて書き、1ケース1確認にとどめると、失敗したときの切り分けが速くなります。ログインのように多くのケースに共通する手順は共有ステップ(Shared steps)にまとめると、画面が変わったときの修正が1か所で済みます。似た機能のケースが既にある場合は、前提条件・手順・期待結果のうち2つ以上が一致するならコピーして差分を直し、そうでなければ新しく書く、と基準を決めておくと迷いません。
テストランの実行とレポート
リリースやスプリントが決まったらマイルストーンを作り、テストランを紐付けます。ブラウザ別・OS別に同じケースを流すなら、テストプランと構成(Configurations)を使うと組み合わせの数だけランが一括で作られます。実行中は各テストにステータス・コメント・スクリーンショットを登録し、失敗したテストからそのまま課題管理ツールへ不具合を起票します。消化率と失敗の推移はダッシュボードで確認でき、Professional以上ならレポートを定期的にメール配信できます。
TestRail APIの認証・結果登録と10.9の追加機能
自動テストの結果をCIの画面に置いたままだと、リリース判定の材料が2か所に割れます。APIで同じランに書き込めば、1画面で判断できます。
API v2の認証とページング
APIのURLは https://ホスト名/index.php?/api/v2/メソッド名 の形式で、HTTP Basic認証のパスワードの代わりに、ユーザー設定画面で発行したAPIキーを渡せます。APIは管理者がAdministration > Site Settings > APIで有効にするまで使えません。次はプロジェクト1のスイート2からケースを50件取る例です。
curl -s -u "[email protected]:$TESTRAIL_API_KEY" \
-H "Content-Type: application/json" \
"https://example.testrail.io/index.php?/api/v2/get_cases/1&suite_id=2&limit=50&offset=0"
get_casesなどの一括取得は既定で250件ずつ返り、続きはレスポンスの _links.next をたどります。最後のページでは next がnullになります。
Pythonによるテスト結果の一括登録
結果の登録には1件ずつの add_result_for_case と、複数件を1回で送る add_results_for_cases があります。Cloudは毎分のリクエスト数に上限があるので、CIからは後者でまとめて送ります。Results APIの仕様では、3(Untested)は新しい結果として登録できません。
次の例はPythonの requests を使います(pip install requests)。環境変数 TESTRAIL_USER と TESTRAIL_API_KEY を設定し、HOST・RUN_ID・case_id は自分の環境の値に置き換えてください。
import os
import requests
HOST = "https://example.testrail.io"
AUTH = (os.environ["TESTRAIL_USER"], os.environ["TESTRAIL_API_KEY"])
RUN_ID = 123
# status_id: 1=Passed, 2=Blocked, 4=Retest, 5=Failed (3=Untested は登録に使えない)
results = [
{"case_id": 101, "status_id": 1, "comment": "CI build 482: passed"},
{"case_id": 102, "status_id": 5, "comment": "CI build 482: assertion failed", "defects": "1234"},
]
resp = requests.post(
f"{HOST}/index.php?/api/v2/add_results_for_cases/{RUN_ID}",
auth=AUTH,
json={"results": results},
timeout=30,
)
resp.raise_for_status()
print(len(resp.json()), "results added")
defects に課題番号を入れ、課題管理ツールのDefect View URLを設定しておくと、TestRailの画面から該当チケットへ直接たどれます。登録先のランを作る add_run は、Runs APIの仕様で include_all の既定値がtrueです。自動テストの対象だけでランを作るなら include_all をfalseにして case_ids を渡します。
TestRail 10.9の再実行・差分取得API
10.9.0のリリースノートには、CIから使う前提のメソッドがまとめて追加されています。Cloudのレート上限に当たりやすい処理を1回で済ませるためのものが中心です。
rerun_run/rerun_plan:既存のランやプランを1回の呼び出しで再実行する(担当者のコピーも選べる)。add_cases_to_run:既存のランにケースを追加する。ケース一覧を取り直して送り直す必要がなく、重複したIDは無視される。get_test_states_for_run:ラン内の各テストの最新結果だけを返す。結果の履歴を全部取らずに済む。get_cases_count:get_casesと同じ絞り込みで件数だけを返す。ページングの回数を先に見積もれる。updated_after:10.8でケースに入った差分取得の絞り込みが、get_runs・get_plans・get_milestonesにも広がった。
日本語版9.4.1やServerの旧版には無いメソッドなので、使う前に接続先の版を確認してください。
trcliによるJUnit XMLの取り込みと初回API呼び出し数
APIを自分で書かなくても、公式のTestRail CLI(trcli)ならJUnit形式のXMLを読んで結果を登録できます。PyPIの最新版は2026年9月23日公開の1.15.3です。pytestなら --junitxml で出したXMLをそのまま渡せます。テストコード側の書き方はpytestの使い方と書き方やJUnitの基本と書き方、ブラウザ操作の自動化はSeleniumの使い方を参照してください。
trcliの設定と2つの照合方式
pip install trcli
pytest --junitxml=reports/junit.xml
trcli -y \
-h https://example.testrail.io \
--project "Web App" \
-u [email protected] -k "$TESTRAIL_API_KEY" \
parse_junit -f "reports/*.xml" --title "CI build 482"
-y はTestRail側に無いケースやセクションを確認なしで作る指定です。既存のランに追記するなら --run-id、マイルストーンに紐付けるなら --milestone-id を足します。
結果をどのケースに付けるかは --case-matcher で決まります。既定の auto は、XMLの classname.name(pytestなら tests.test_items.test_item[101] のような値)とケースのカスタムフィールド automation_id を突き合わせ、一致しないテストは新しいケースとして作ります。name はテスト名に含まれるケースIDで照合する方式で、test_login_C101・[C101] login・C101_login のような書き方を読み取ります。ケースIDがテスト名にあっても、auto のままでは使われません。今回の実測でも、名前に C109 を含むテストが auto では新規ケースとして作られました。
APIリクエスト数の実測:初回619回・2回目18回
Cloudのレート上限にどれだけ響くかを確かめるため、trcli 1.15.3(Python 3.12)を、TestRail APIの応答を返す自作のモックサーバーに向けて実行し、届いたリクエストを数えました(2026年10月25日)。モックは get_cases を1ページで返すため、実際のインスタンスでは250件ごとにページングの呼び出しが加わります。
| 条件 | リクエスト数 | 主な内訳 |
|---|---|---|
| auto・10件すべて新規 | 18 | 参照5・セクション作成1・ケース作成10・ラン作成1・結果1 |
| auto・同じ10件の2回目 | 7 | 参照5・ラン作成1・結果1 |
| auto・600件すべて新規 | 619 | 参照5・セクション作成1・ケース作成600・ラン作成1・結果12 |
| auto・同じ600件の2回目 | 18 | 参照5・ラン作成1・結果12 |
| name・既存ケース3件 | 4 | 参照2・ラン作成1・結果1 |
差を生んでいるのは add_case です。trcliは未登録のテストを1件ずつ add_case で作り、結果は既定50件ずつ(-b/--batch-size で変更可)まとめて送ります。v1.15.3の設定値ではケース作成は最大10並列、再試行は5回で、HTTP 429を受けると Retry-After の秒数だけ待ってやり直します。
この数字をCloudの上限に当てはめると、600件の初回取り込みはEssentials(毎分100回)で6分以上、Professional(毎分180回)でも3分以上、上限に張り付いた状態が続きます。同じ600件の2回目は今回のモックでは18回で、実環境ではこれに250件ごとのページングと429の再試行が加わります。上限は同じインスタンスの他のAPI利用とも共有するので、毎回の取り込みも余裕を見て組みます。それでも桁が変わるのは、ケースを大量に作る初回です。
そこで、既存の自動テストをまとめて載せるときは、CIのパイプラインで初回を流さず、手元から1回取り込んでケースを作り終えてからCIに組み込みます。既にTestRail側にケースがあり、テスト名にケースIDを書けるチームなら、--case-matcher name を使うと、automation_id による照合を省けます。今回の既存ケース3件のモックでは4回でしたが、結果送信は既定50件単位なので、件数が増えると呼び出し回数も増えます。CIとテスト管理の連携を含めた導入支援が必要なら、DevOps・CI/CDの導入支援でも相談を受けています。
オンプレミス版(TestRail Server)の要件:PHP 8.3とデータベース
TestRail ServerはPHPで動くWebアプリケーションで、自社のWindows・Linux・Dockerに入れて運用します。10.0.1以降のLinux向け手順はPHP 8.3のインストールを前提にしています。
| 項目 | Linux | Windows |
|---|---|---|
| Webサーバー | Apache/Nginx | IIS |
| PHP | 8.3(10.0.1以降) | 8.3推奨(10.0.1以降) |
| データベース | MySQL 5.5〜8.4.5/MariaDB 10.1以降 | SQL Server 2019・2022・2025 |
| コンテナ | 公式Dockerイメージあり(10.9.0) | |
表はInstallation Requirements(9.4.1〜10.9.0)に基づきます。同ページは2026年10月19日に更新され、10.9.0も対象に含まれています。WindowsではMySQLが使えない点に注意してください。Serverの利点はAD/LDAP認証、独自のレポート・不具合プラグイン、APIのレート上限が無いことで、代わりにバックアップと更新を自分たちで持ち、AI機能は使えません。社外へ出せないデータ、AD/LDAP認証、独自プラグイン、更新時期の管理が必要ならServerを選びます。これらが不要なら、運用負担を減らせるCloudを第一候補にします。
RedmineやJiraとの課題管理ツール連携
TestRailは不具合の管理機能を持たず、課題管理ツールと組み合わせて使う前提です。料金ページではJira、GitHub、GitLab、Azure DevOpsとの連携が全プランに含まれています。Jira側の運用はJiraの使い方で解説しています。
Redmineとの連携には2段階あります。
- Defect URL:失敗したテストの画面に、Redmineの課題へのリンクと新規起票画面へのリンクを出す。表示用URLは
http://your-server/issues/%id%の形式。 - Defect Plugin:TestRailの画面からRedmineへ直接起票し、課題の状態を参照する。Administration > IntegrationのDefect PluginでRedmineを選ぶ。
Defect Pluginを使うには、Redmine側でRESTによるWebサービスを有効にしておく必要があります。設定が通らないときは、まずこのREST設定を確認してください。チケット起点で開発を回すチームなら、チケット駆動開発(TiDD)のルールとツール設定とテストの記録を揃えると、変更からテスト結果までを1本の線で追えます。
TestRailが向かないケースと代替ツールの選び方
ケースが数十件で担当者が1〜2人なら、スプレッドシートで十分回ります。自動テストだけで品質を判断している組織も、CIのテストレポートがあれば足り、1ユーザー年$264以上を払う理由は薄いです。導入が効くのは、手動テストが数百件以上あり、複数人が並行して実行し、リリースごとに「何をどこまで確認したか」を説明する責任がある場合です。
| ツール | 価格 | 最新版 | 向いている場面 |
|---|---|---|---|
| TestRail | $22〜$78/人・月 | 10.9(2026-10) | SaaSですぐ使いたい |
| qTest(Tricentis) | 問い合わせ | SaaS:2026年10月更新 | Tricentis製品と併用 |
| Kiwi TCMS | 無償(GPL-2.0) | 16.6(2026-10) | 自社サーバーで運用 |
| TestLink | 無償(GPL-2.0) | 1.9.20(2020-01) | 既存環境の継続のみ |
qTestは価格を問い合わせ後に提示する方式で、TestRailのように単価を見比べてから試すことができません。Kiwi TCMSは2026年10月7日に16.6が出ており、開発が続いているオープンソースとしては第一候補です。ただしサーバーの構築・バックアップ・更新を自分たちで持つので、比べるべきは「利用人数×年$264(Essentials)」と「自社運用の工数の人件費」です。表示単価で計算すると5人分は年$1,320です。自社運用の年間工数×人件費単価にサーバー費を足した額がこれを上回るなら、Essentialsを選びます。購入時の確定額で比べてください。TestLinkは正式版が2020年1月の1.9.20で止まっているため、新規導入は勧めません。
品質管理の全体像から見直すなら、工程別のテスト管理とメトリクス判定の手順やバグ密度・テスト密度の目安を先に決めておくと、どのツールでも集計すべき指標がぶれません。
よくある質問
TestRailとは何ですか?
テストケースの作成、テストランの計画と実行記録、結果のレポートまでをWeb上で一元管理する商用のテスト管理ツールです。開発元はGurock Softwareで、国内ではテクマトリックスが日本語版を販売しています。
テスト管理ツールとは何ですか?
テストケース(何を確かめるか)と実行結果(いつ・どの版で・誰が・どうだったか)を記録し、進捗と不具合を集計するツールです。Excelでも同じ記録は残せますが、複数人の同時更新、版ごとの結果の固定、課題管理ツールとの連携を手作業なしで回せる点が違います。
TestRailの料金はいくらですか?
公式の年払い価格は1ユーザーあたり月額でEssentials $22(5人まで)、Professional $38、Enterprise $78です(2026年10月時点)。月払いはEssentials $25、Professional $41で、Enterpriseは年払いのみです。国内代理店経由の円建て価格は問い合わせ制です。
TestRailは無料で使えますか?
常に無料で使えるプランはありません。全プランに30日間の無料トライアルがあり、クレジットカードなしで始められます。無償で運用したい場合は、オープンソースのKiwi TCMSを自社サーバーで動かすのが現実的です。
TestRail APIとtrcliはどう使い分けますか?
JUnit形式のXMLを出せるテストなら、trcliで取り込むのが手早い方法です。結果の書式を細かく制御したい、ランの再実行やケース追加をCIから操作したいときはAPIを直接呼びます。どちらもCloudではプランごとの毎分のリクエスト上限の対象です。