0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

テスト管理ツール TestLink の調査 (2026年版)

0
Last updated at Posted at 2026-10-23

はじめに

昨年から、レガシーなウォーターフォール型SIの案件に入っています。相変わらず方眼Excelで設計書やテスト仕様書などを作成する世界ですが、生成AIが少しずつ入ってきています。

生成AIと方眼Excelは相性が悪いので、できれば方眼Excelを排除していきたいところです。設計書/仕様書は徐々にマークダウンの導入が進んでますが、テスト仕様書、テスト結果は依然としてExcelの世界です。

テスト設計~テスト結果~レビューの流れを生成AIを活用して効率化してみました。

image.png

TestLink

2026年現在 TestLinkは活発には修正は行われていないものの、PHP8対応も少しずつ行われて十分利用できます。

2026年10月現在、動作検証した環境は以下の通り。

Amazon Linux 2023
TestLink 1.19.20_fixed
PHP 8.5
MairaDB 10.5

インスタンスの準備

EC2インスタンスを作成します。ディスクやメモリはあまり使わないので、t3.microあたりのインスタンスで十分に動作させることができます。

t3.micro
disk: 8GB

インスタンスが起動したら、インスタンスクライアントでインスタンスに接続します。

必要なパッケージのインストール

TestLinkの稼働に必要なパッケージをAmazon Linux 2023にインストールします。

sudo yum update

sudo yum install git httpd php php-gd php-ldap php-mysqlnd mariadb105-server

MariaDBの初期設定

MariaDBが正しくインストールされたことを確認します。

$ mysql --version
mysql  Ver 15.1 Distrib 10.5.29-MariaDB, for Linux (x86_64) using  EditLine wrapper

MariaDBの文字コードを設定します、まずサーバー側。/etc/my.cnf.d/mariadb-server.cnf ファイルを編集します。

sudo vi /etc/my.cnf.d/mariadb-server.cnf

[mariad]のセクションに2行追加します

[mariadb]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci

つぎに、クライアント側。/etc/my.cnf.d/mysql-clients.cnf ファイルを編集します。

sudo vi /etc/my.cnf.d/mysql-clients.cnf

[mysql]のセクションに1行追加します

[mysql]
default-character-set=utf8mb4

MariaDBを起動します。自動起動も有効にします。

sudo systemctl start mariadb
sudo systemctl enable mariadb

DBが起動したら接続して文字コードが反映されているか確認します。最初のパスワードのプロンプトはEnterキーのみで入ります。

sudo mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.5.29-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> status
--------------
mysql  Ver 15.1 Distrib 10.5.29-MariaDB, for Linux (x86_64) using  EditLine wrapper

Connection id:          3
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server:                 MariaDB
Server version:         10.5.29-MariaDB MariaDB Server
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4
UNIX socket:            /var/lib/mysql/mysql.sock
Uptime:                 11 sec

Threads: 1  Questions: 4  Slow queries: 0  Opens: 17  Open tables: 10  Queries per second avg: 0.363
--------------

MariaDB [(none)]> exit
Bye

'sudo mysql -u root -p' で接続できるが 'mysql -u root -p' で接続するために、パスワードを設定します。

sudo mysql -u root -p

alter user 'root'@'localhost' identified by 'password';

接続できることを確認します。

mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 10.5.29-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> exit
Bye

PHPの設定

TestLinkにおけるPHPの推奨値を設定。

sudo vi /etc/php.ini

404行目、max_execution_time を30秒から120秒にする。

max_execution_time = 120

TestLinkのインストール

いよいよTestLinkをインストールしていきます。

ログインしているec2-userでファイルが配置、編集できるようにして、配置先のファイル属性を変更します。

sudo usermod -a -G apache ec2-user
sudo chown -R ec2-user:apache /var/www
sudo chmod 2775 /var/www

GitHubからTestLinkのソースコードを取得します。

7月の hupark-seegene さんのプルリクを見ると、PHP8対応が行われているようなので、こちらを使わせていただきます。(https://github.com/hupark-seegene/testlink-code/tree/php8-modernization)

cd /var/www/html

git clone https://github.com/hupark-seegene/testlink-code.git testlink

cd testlink

git checkout php8-modernization

ログなど、TestLinkが書き込むディレクトリーを準備します。

sudo mkdir -p /var/testlink/logs/
sudo mkdir -p /var/testlink/upload_area/
sudo chmod -R 2775 /var/testlink
sudo chmod -R 2775 /var/www/html/testlink
sudo chown -R ec2-user:apache /var/testlink
sudo chown -R ec2-user:apache /var/www/html/testlink

httpd を起動し、自動起動を設定します。

sudo systemctl start httpd
sudo systemctl enable httpd

ブラウザー・インストール

初期設定はブラウザーから行います。

http://<host名>/testlink にアクセスする。

image.png

「New installation」をクリックしてインストール開始する。インストールは以下のステップがある。

Acceptance of License
Verification of System and configration
Definition of DB access
Create DB, testlink DB user, structures and default data & create configuration file.
Verify the procefure result and continue to TestLink login.

基本的には Continue で続行する。Create DB, testlink DB user, structures and default data & create configuration file のステップでは作成したDBの情報を入力する。

Database Type: MySQL/MariaDB (5.6+ / 10.+) - デフォルトのまま
Database host: localhost - デフォルトのまま
Database name: testlink - デフォルトのまま
Database admin login: root - デフォルトのまま
Database admin password: password - 上記で設定したパスワード
TestLink DB login: testlink - TestLink用に作成するユーザー
TestLink DB password: password - TestLink用に作成するユーザーのパスワード

以下の画面が表示されて、インストールが完了です。

image.png

udf設定

インストール完了時にブラウザーにsqlを実行せよ、と表示されるので実行。

/var/www/html/testlink/install/sql/mysql/testlink_create_udf0.sql の YOUR_TL_DBNAME を testlink に置き換える(2か所)

vi /var/www/html/testlink/install/sql/mysql/testlink_create_udf0.sql

DBに接続して上記sqlを実行する。

$ mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 29
Server version: 10.5.29-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> source /var/www/html/testlink/install/sql/mysql/testlink_create_udf0.sql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
Query OK, 0 rows affected (0.004 sec)

Database changed
Query OK, 0 rows affected (0.004 sec)

ログインして最初のプロジェクトを作成します。

AI活用

TestLinkは古くても、生成AIによりテストケースの作成など比較的大変な作業をAIに任せることができるようになりました。

Claude Codeなどを使って、マークダウン形式のテスト仕様からXML-RPC経由でTestLinkにテストケースを登録させることができます。

TestLinkはREST APIもありますが、XML-RPCに比べて操作できる範囲が限定されています。また、生成AIはREST APIだけでなくXML-RPCも容易に呼び出してくれます。

SKILLのサンプル

以下は、Claude Codeなどで指定するSKILLのサンプルです。ちゃんとエスケープしていないので、途中で別れたりしていますが。カスタマイズしてご利用ください。

SKILL.md
---
name: testlink-xml-rpc
description: TestLink を XML-RPC API で操作する。テストプロジェクト、テストスイート、テストケース、テスト計画、ビルド、実行結果、要件、要件紐付け、添付ファイルの自動化に対応。
---

# TestLink API 操作ガイド

TestLink 1.9.x/2.x の標準 API は **REST API** と **XML-RPC API** の両方が存在するが、操作範囲が広いため、すべての操作は **XML-RPC API のみを使用する**。

## 対象バージョン

- **TestLink 1.9.20 fixed**

## 前提条件

- TestLink サーバーが稼働していること
- API Key(`users.script_key`)を発行していること
- 対象操作に必要な権限が API Key に紐づくユーザーに付与されていること

## API Key の取得

API Key は TestLink ユーザーごとに発行されます。

1. GUI で「マイアカウント(My Account)」を開く
2. 「API インターフェース」欄でキーを生成
3. または DB の `users.script_key` カラムを直接確認

取得したキーを以降の devKey パラメータに設定する。

---

## XML-RPC API

すべての操作で使用する API。

### エンドポイント

`http://<サーバーアドレス>/testlink/lib/api/xmlrpc/v1/xmlrpc.php`

### 認証

各メソッド呼び出しの引数(struct)に `devKey` を含める。  
REST API と同じ API Key(`users.script_key`)を使用する。

`ApiKey: `devKey``

**重要:devKey は必ず struct のメンバーとして渡す。**  
文字列として直接渡すと `code: 100 - No devKey provided.` エラーになる。

\```xml
<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
  <methodName>tl.getProjects</methodName>
  <params>
    <param>
      <value>
        <struct>
          <member>
            <name>devKey</name>
            <value><string>`devKey`</string></value>
          </member>
        </struct>
      </value>
    </param>
  </params>
</methodCall>
\```

### 主なメソッド

#### テストプロジェクト

| メソッド | 説明 |
|----------|------|
| `tl.createTestProject` | プロジェクト作成 |
| `tl.getProjects` | プロジェクト一覧 |
| `tl.getTestProjectByName` | 名前でプロジェクト取得 |
| `tl.getProjectTestPlans` | プロジェクト配下のテスト計画取得 |
| `tl.getFirstLevelTestSuitesForTestProject` | 第1階層テストスイート取得 |

#### テストスイート

| メソッド | 説明 |
|----------|------|
| `tl.createTestSuite` | テストスイート作成 |
| `tl.updateTestSuite` | テストスイート更新 |
| `tl.getTestSuiteByID` | ID で取得 |
| `tl.getTestSuitesForTestSuite` | 子スイート取得 |
| `tl.getTestSuite` | 名前/prefix で取得 |
| `tl.getTestSuiteAttachments` | 添付ファイル取得 |

#### テストケース

| メソッド | 説明 |
|----------|------|
| `tl.createTestCase` | テストケース作成 |
| `tl.updateTestCase` | テストケース更新 |
| `tl.getTestCase` | テストケース取得 |
| `tl.getTestCasesForTestSuite` | スイート配下のテストケース取得 |
| `tl.getTestCasesForTestPlan` | 計画配下のテストケース取得 |
| `tl.getTestCaseIDByName` | 名前で ID 取得 |
| `tl.addTestCaseToTestPlan` | テスト計画への追加 |
| `tl.setTestCaseTestSuite` | 所属スイート変更 |
| `tl.getTestCaseAttachments` | 添付ファイル取得 |

#### テスト計画・ビルド・実行

| メソッド | 説明 |
|----------|------|
| `tl.createTestPlan` | テスト計画作成 |
| `tl.getProjectTestPlans` | テスト計画取得 |
| `tl.getTestPlanByName` | 名前で取得 |
| `tl.createBuild` | ビルド作成 |
| `tl.getBuildsForTestPlan` | ビルド取得 |
| `tl.getLatestBuildForTestPlan` | 最新ビルド取得 |
| `tl.reportTCResult` | 実行結果登録 |
| `tl.setTestCaseExecutionResult` | `reportTCResult` のエイリアス |
| `tl.getLastExecutionResult` | 最終実行結果取得 |
| `tl.deleteExecution` | 実行結果削除 |

#### 要件

| メソッド | 説明 |
|----------|------|
| `tl.getRequirements` | 要件一覧取得 |
| `tl.getRequirement` | 要件取得 |
| `tl.assignRequirements` | テストケースと要件の紐付け |
| `tl.getTestCaseRequirements` | テストケースに紐づく要件取得 |
| `tl.getReqCoverage` | 要件カバレッジ取得 |

#### 添付ファイル

| メソッド | 対象 |
|----------|------|
| `tl.uploadTestProjectAttachment` | テストプロジェクト |
| `tl.uploadTestSuiteAttachment` | テストスイート |
| `tl.uploadTestCaseAttachment` | テストケース |
| `tl.uploadExecutionAttachment` | 実行結果 |
| `tl.uploadRequirementAttachment` | 要件 |
| `tl.uploadRequirementSpecificationAttachment` | 要件仕様 |
| `tl.uploadAttachment` | 汎用 |

アップロード時はファイル内容を **Base64 エンコード** して `content` に指定する。

---

## 操作別の API

すべての操作で XML-RPC API を使用する。REST API はこの環境では使用しない。

| 操作 | XML-RPC メソッド |
|------|-----------------|
| テストプロジェクト作成 | `tl.createTestProject` |
| テストプロジェクト一覧取得 | `tl.getProjects` |
| テストプロジェクト取得(名前) | `tl.getTestProjectByName` |
| テストスイート作成 | `tl.createTestSuite` |
| テストスイート取得・更新 | `tl.getTestSuiteByID`, `tl.updateTestSuite` |
| テストケース作成 | `tl.createTestCase` |
| テストケース更新 | `tl.updateTestCase` |
| テストケース取得 | `tl.getTestCase`, `tl.getTestCasesForTestSuite` |
| テスト計画作成 | `tl.createTestPlan` |
| テスト計画取得 | `tl.getProjectTestPlans`, `tl.getTestPlanByName` |
| ビルド作成 | `tl.createBuild` |
| ビルド取得 | `tl.getBuildsForTestPlan`, `tl.getLatestBuildForTestPlan` |
| テスト実行結果登録 | `tl.reportTCResult` |
| 実行結果取得 | `tl.getLastExecutionResult` |
| 要件取得 | `tl.getRequirements`, `tl.getRequirement` |
| 要件とテストケースの紐付け | `tl.assignRequirements` |
| 添付ファイルアップロード | `tl.upload*Attachment` |

---

## エラーハンドリング

### XML-RPC API

- レスポンス配列内に `faultCode` / `faultString` が含まれる場合がある
- 主要なエラーコード
  - `100` : `devKey` 未指定
  - `2000` : 認証失敗(無効な Dev Key)
  - `2010` : 権限不足
  - `3000` 台 : テスト計画関連
  - `4000` 台 : ビルド関連
  - `5000` 台 : テストケース関連
  - `6000` 台 : ステータス・添付ファイル関連
  - `7000` 台 : テストプロジェクト関連
  - `8000` 台 : テストスイート関連
  - `11000` 台 : 要件関連

---

## 実装ヒント

### PowerShell から呼び出す場合

XML-RPC リクエストは `-Body` にバイト配列を渡し `charset=utf-8` を明示する。  
文字列をそのまま渡すと PowerShell 5.1 が ISO-8859-1 で送信するため、日本語が文字化けする。

\```powershell
$xmlBody = @"
<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
  <methodName>tl.createTestPlan</methodName>
  <params>
    <param>
      <value>
        <struct>
          <member><name>devKey</name><value><string>`devKey`</string></value></member>
          <member><name>testplanname</name><value><string>テスト計画名</string></value></member>
          <member><name>testprojectname</name><value><string>プロジェクト名</string></value></member>
        </struct>
      </value>
    </param>
  </params>
</methodCall>
"@

# UTF-8 バイト配列として送信する(日本語文字化け防止)
$bytes = [System.Text.Encoding]::UTF8.GetBytes($xmlBody)
$r = Invoke-RestMethod -Uri "http://<サーバーアドレス>/testlink/lib/api/xmlrpc/v1/xmlrpc.php" `
    -Method Post -Body $bytes -ContentType "text/xml; charset=utf-8"
$r.OuterXml
\```

### 汎用の注意点

- API Key は環境変数またはシークレットマネージャーから取得し、コードにハードコードしない
- **XML-RPC の devKey は必ず struct のメンバーとして渡す**(文字列で直接渡すと `code: 100` エラー)
- **PowerShell から送信する場合は `-Body` に UTF-8 バイト配列を渡し `Content-Type: text/xml; charset=utf-8` を指定する**。文字列のまま渡すと日本語が文字化けする
- **XML 宣言に `encoding="UTF-8"` を明記する**
- 添付ファイルは Base64 エンコードが必要
- 実行結果の `status` は TestLink インスタンスの設定値に依存するため、事前に確認する(標準: `p`=合格, `f`=不合格, `b`=ブロック)
- XML-RPC メソッド名は `tl.` プレフィックスが必要
- XML-RPC レスポンスは配列で返る場合があり、`faultCode`/`faultString` を含むことがあるため必ず確認する

---

## トラブルシューティング

### テストケースの廃止(削除の代替)

TestLink XML-RPC にはテストケースの削除 API がない。  
`updateTestCase` で `status: 7`(obsolete)を設定して廃止扱いにする。

\```python
server.tl.updateTestCase({
    'devKey': DEV_KEY,
    'testcaseexternalid': 'pj362-1',
    'status': 7,  # 7 = obsolete
    'user': 'admin',
})
\```

---

## テストスイート設計ガイドライン(品質管理の生産性向上)

### スイート構造の推奨パターン

テスト種別(UT / E2E)を最上位で分割することで、テスト計画でのフィルタリングや環境ごとの実行管理がしやすくなる。

\```
<機能名>
├── [UT] 単体テスト
│   ├── 正常系
│   └── 異常系
└── [E2E] APIテスト(HTTPレベル)
    ├── 正常系テスト
    └── 異常系テスト
\```

### テストケース設計の原則

| 項目 | 推奨 | アンチパターン |
|------|------|---------------|
| 粒度 | 1テストケース=1確認観点 | 複数観点を1件に詰め込む |
| テストケース名 | `条件 → 期待結果` 形式 | 分類名のみ(内容不明) |
| テストステップ | 確認観点ごとに1ステップ | 1ステップに複数確認を記載 |
| Summary | 目的・対象を明記 | 空欄 |
| Preconditions | モック設定・DB状態など前提を明記 | 空欄 |
| importance | High/Medium/Low を適切に設定 | 全件 Medium |

### importance の設定基準(目安)

| importance | 値 | 対象 |
|------------|---|------|
| High | 3 | 正常動作の基本確認・障害時の挙動確認 |
| Medium | 2 | 仕様準拠確認・単体レベルの詳細検証 |
| Low | 1 | 補助的な確認・レアケース |

### テストケース名の命名規則

\```
<テストID>: <入力条件・操作> → <期待結果の要約>

例:
  N-001: GET /health パラメータなし → 200 UP APP_AND_DB
  U-004: check("1") DB異常 → HealthDbException をスロー
  E-001: DB接続不可 + check_database_flag=1 → 500 DOWN APP_AND_DB
\```

---

## 付録:XML-RPC API OpenAPI 風仕様

以下は XML-RPC API を OpenAPI 3.0 風に整理した参考仕様です。  
XML-RPC は REST ではないため、実際には `/xmlrpc.php` へ `POST` して XML ボディでメソッドを呼び出します。  
ここでは各メソッドの引数・戻り値をスキーマとして整理しています。

\```yaml:openapi-xmlrpc.yaml
openapi: 3.0.3
info:
  title: TestLink XML-RPC API
  version: "1.0"
  description: |
    TestLink 1.9.x XML-RPC API 参考仕様。
    実際の呼び出しは /lib/api/xmlrpc/v1/xmlrpc.php への XML-RPC POST となる。
servers:
  - url: https://<TestLinkホスト>/lib/api/xmlrpc/v1
    variables:
      host:
        default: testlink.example.com

paths:
  /xmlrpc.php:
    post:
      summary: XML-RPC 共通エンドポイント
      description: |
        すべての XML-RPC メソッドはこのエンドポイントに対して
        <methodCall><methodName>tl.xxx</methodName>...</methodCall> 形式で送信する。
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              type: string
      responses:
        "200":
          description: XML-RPC レスポンス
          content:
            application/xml:
              schema:
                $ref: "#/components/schemas/XMLRPCResponse"

components:
  schemas:
    DevKey:
      type: string
      description: ユーザーの API Key(users.script_key)

    XMLRPCResponse:
      type: object
      description: |
        XML-RPC レスポンス。<params><param><value>...</value></param></params> 形式。
        失敗時は faultCode/faultString を含む場合がある。

    TestProject:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        prefix:
          type: string
        notes:
          type: string
        active:
          type: integer
        is_public:
          type: integer

    TestCase:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        testSuiteID:
          type: integer
        testProjectID:
          type: integer
        summary:
          type: string
        preconditions:
          type: string
        steps:
          type: array
          items:
            $ref: "#/components/schemas/TestCaseStep"

    TestCaseStep:
      type: object
      properties:
        step_number:
          type: integer
        actions:
          type: string
        expected_results:
          type: string
        execution_type:
          type: integer

    ExecutionResult:
      type: object
      properties:
        id:
          type: integer
        statusCode:
          type: string
          description: p/f/b など TestLink 設定依存
        notes:
          type: string

    Requirement:
      type: object
      properties:
        id:
          type: integer
        req_doc_id:
          type: string
        title:
          type: string
        scope:
          type: string

    Attachment:
      type: object
      properties:
        id:
          type: integer
        title:
          type: string
        description:
          type: string
        file_name:
          type: string
        file_type:
          type: string
        content:
          type: string
          format: byte
          description: Base64 エンコードされたファイル内容

    Fault:
      type: object
      properties:
        faultCode:
          type: integer
        faultString:
          type: string

  # メソッド一覧(parameters / responses の参考定義)
  methods:
    tl.checkDevKey:
      summary: Dev Key の有効性確認
      parameters:
        - name: devKey
          schema:
            $ref: "#/components/schemas/DevKey"
      responses:
        "200":
          content:
            application/xml:
              schema:
                type: boolean

    tl.getProjects:
      summary: テストプロジェクト一覧取得
      parameters:
        - name: devKey
          schema:
            $ref: "#/components/schemas/DevKey"
      responses:
        "200":
          content:
            application/xml:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/TestProject"

    tl.createTestProject:
      summary: テストプロジェクト作成
      parameters:
        - name: devKey
          schema:
            $ref: "#/components/schemas/DevKey"
        - name: testprojectname
          schema:
            type: string
        - name: testcaseprefix
          schema:
            type: string
        - name: notes
          schema:
            type: string
        - name: options
          schema:
            type: object
        - name: active
          schema:
            type: integer
        - name: public
          schema:
            type: integer
      responses:
        "200":
          content:
            application/xml:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    status:
                      type: boolean
                    id:
                      type: integer
                    message:
                      type: string

    tl.createTestCase:
      summary: テストケース作成
      parameters:
        - name: devKey
          schema:
            $ref: "#/components/schemas/DevKey"
        - name: testcasename
          schema:
            type: string
        - name: testsuiteid
          schema:
            type: integer
        - name: testprojectid
          schema:
            type: integer
        - name: authorlogin
          schema:
            type: string
        - name: summary
          schema:
            type: string
        - name: steps
          schema:
            type: array
            items:
              $ref: "#/components/schemas/TestCaseStep"
        - name: preconditions
          schema:
            type: string
        - name: importance
          schema:
            type: integer
        - name: execution
          schema:
            type: integer
        - name: order
          schema:
            type: integer
        - name: checkduplicatedname
          schema:
            type: integer
        - name: actiononduplicatedname
          schema:
            type: string
      responses:
        "200":
          content:
            application/xml:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    status:
                      type: boolean
                    id:
                      type: integer
                    additionalInfo:
                      type: object
                    message:
                      type: string

    tl.updateTestCase:
      summary: テストケース更新
      parameters:
        - name: devKey
          schema:
            $ref: "#/components/schemas/DevKey"
        - name: testcaseexternalid
          schema:
            type: string
        - name: version
          schema:
            type: integer
        - name: testcasename
          schema:
            type: string
        - name: summary
          schema:
            type: string
        - name: preconditions
          schema:
            type: string
        - name: steps
          schema:
            type: array
            items:
              $ref: "#/components/schemas/TestCaseStep"
        - name: importance
          schema:
            type: integer
        - name: executiontype
          schema:
            type: integer
        - name: status
          schema:
            type: integer
        - name: estimatedexecduration
          schema:
            type: number
      responses:
        "200":
          content:
            application/xml:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    status:
                      type: boolean
                    id:
                      type: integer
                    message:
                      type: string

    tl.reportTCResult:
      summary: テスト実行結果登録
      parameters:
        - name: devKey
          schema:
            $ref: "#/components/schemas/DevKey"
        - name: testcaseid
          schema:
            type: integer
        - name: testcaseexternalid
          schema:
            type: string
        - name: testplanid
          schema:
            type: integer
        - name: status
          schema:
            type: string
        - name: buildid
          schema:
            type: integer
        - name: buildname
          schema:
            type: string
        - name: notes
          schema:
            type: string
        - name: execduration
          schema:
            type: number
        - name: platformid
          schema:
            type: integer
        - name: platformname
          schema:
            type: string
        - name: customfields
          schema:
            type: object
        - name: overwrite
          schema:
            type: integer
        - name: user
          schema:
            type: string
        - name: timestamp
          schema:
            type: string
            format: date-time
      responses:
        "200":
          content:
            application/xml:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ExecutionResult"

    tl.getRequirements:
      summary: 要件一覧取得
      parameters:
        - name: devKey
          schema:
            $ref: "#/components/schemas/DevKey"
        - name: testprojectid
          schema:
            type: integer
        - name: testplanid
          schema:
            type: integer
        - name: platformid
          schema:
            type: integer
      responses:
        "200":
          content:
            application/xml:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Requirement"

    tl.assignRequirements:
      summary: 要件とテストケースの紐付け
      parameters:
        - name: devKey
          schema:
            $ref: "#/components/schemas/DevKey"
        - name: testcaseexternalid
          schema:
            type: string
        - name: testprojectid
          schema:
            type: integer
        - name: requirements
          schema:
            type: array
            description: array(array('req_spec'=>id, 'requirements'=>array(id,...)))
            items:
              type: object
      responses:
        "200":
          content:
            application/xml:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  message:
                    type: string

    tl.uploadExecutionAttachment:
      summary: 実行結果への添付ファイルアップロード
      parameters:
        - name: devKey
          schema:
            $ref: "#/components/schemas/DevKey"
        - name: executionid
          schema:
            type: integer
        - name: title
          schema:
            type: string
        - name: description
          schema:
            type: string
        - name: filename
          schema:
            type: string
        - name: filetype
          schema:
            type: string
        - name: content
          schema:
            type: string
            format: byte
      responses:
        "200":
          content:
            application/xml:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  id:
                    type: integer
                  message:
                    type: string

    tl.uploadTestCaseAttachment:
      summary: テストケースへの添付ファイルアップロード
      parameters:
        - name: devKey
          schema:
            $ref: "#/components/schemas/DevKey"
        - name: testcaseid
          schema:
            type: integer
        - name: version
          schema:
            type: integer
        - name: title
          schema:
            type: string
        - name: description
          schema:
            type: string
        - name: filename
          schema:
            type: string
        - name: filetype
          schema:
            type: string
        - name: content
          schema:
            type: string
            format: byte
      responses:
        "200":
          content:
            application/xml:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  id:
                    type: integer
                  message:
                    type: string
\```
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?