今回はQualityForward APIを使って、テストブロッカーの設定を一括で行う方法についてご紹介します。
※フリープランではAPIを使用することはできません
またこのスクリプトを応用することで、カバレッジパネルにも同様の設定を行うことができます。
※テストブロッカーの機能をまだご存じでない方は、先にテストブロッカーのリリース記事をご覧ください。
レポート画面からテストの阻害要因をひとめで確認できるようになりました(2020/9/24)
今回ご紹介するサンプルコードはGitHub上にも上がっていますので、是非ご利用ください。
※Python 3.7にて動作を確認しています。
※実行に必要な環境設定についてはこちらの記事をご覧ください。
APIを利用して、全テストサイクルの情報を取得するサンプルスクリプトを公開しました 開発環境の構築
このスクリプトについて
テストブロッカーは各テストスイートにて集計項目を設定する必要があるため、大量のテストスイートを有効化したい場合、設定に時間がかかります。
APIを利用することで複数のテストスイートに対して集計項目の設定をまとめて行えるようになります。これにより大量にテストスイートがあるプロジェクトでも、効率よくテストブロッカーを有効化することができます。
スクリプトの適用範囲
このスクリプトはプロジェクト内の「利用可」のステータスとなっている各テストスイートに対し、テストブロッカーの設定を適用します。テストスイートのステータスはテストスイート一覧画面よりご確認いただけるほか、「設定」から変更することができます。あらかじめご確認ください。
スクリプトの設定方法
具体的な設定方法をご説明します。
テストスイートのテスト結果の自由項目ラベルより集計対象のラベルを選択します。今回は例として"バグID"というラベルをテストブロッカーの集計項目として設定してみましょう。
このスクリプトは項目に記載されたラベル名を参照するため、テストスイートごとに列番号が異なる場合でも設定することができます。
取得したzipフォルダを解凍し、フォルダ内の[settings.py]ファイルを書き換えます。URLとAPIキーを対象のURLに書き換えてください。
BASE_API_URL = 'https://cloud.veriserve.co.jp/api/v2/' #APIのパス
API_KEY = 'bde999a47637dca5a3d06aa3fa5a0f6fcee8e31aa825a57f' #APIのキー
TSV_STATUS = 'available' #テストスイートバージョンのステータスの値(利用可)
スクリプトの実行
解凍したフォルダのパス入力欄に"cmd"と入力してEnterキーを押し、コマンドプロンプトを開きます。
コマンドプロンプトに以下のコマンドを入力します。
python TestBlock.py -n "テストブロッカーの集計項目として割り当てたいラベル名"
今回の集計値として設定したい項目は"バグID"なので、入力するコマンドは"python TestBlock.py -n バグID"になります。
コマンドを入力後、Enterキーを押下するとテストブロッカーの一括設定が開始されます。設定が完了すると「テストブロッカー指定が完了しました」のメッセージが表示されます。
完了と同時にフォルダ内にテキストファイル[app_yyyymmdd]が生成されます。このテキストファイルから設定が有効になったテストスイートを確認することができます。
備考
・テストスイートに登録のないラベル名を割り当てた場合、反映されません。(処理完了のメッセージは表示されます)
・すでにテストブロッカーの集計に利用する項目を設定していた場合、スクリプトを実行すると上書き処理が行われます。
【応用編】一括設定をカバレッジパネルに適用する
このスクリプトの内容を一部変更することで、カバレッジパネルの集計項目として利用する項目も一括で設定することができます。
TestBlock.pyファイルを開き、内容を3行書き換えます。書き換え内容は以下のとおりです。
payload = 'test_suite[test_blocker_column]=' + str(col_block_index) ↓ payload = 'test_suite[coverage_panel_column]=' + str(col_block_index)
label_content_list = list(filter(lambda x: x.find('label_content') != -1, keys)) ↓ label_content_list = list(filter(lambda x: x.find('label_category') != -1, keys))
_target_index = int(label.replace('label_content', '')) ↓ _target_index = int(label.replace('label_category', ''))
上記の内容に書き換えた後、コマンドプロンプトを起動し、以下のコマンドを入力してください。
python TestBlock.py -n "カバレッジパネルの集計項目として割り当てたいラベル名"
Enterキー押下後、処理が実行されます。処理完了時のメッセージは「テストブロッカー指定が完了しました。」のままですが、変更はカバレッジパネルに適用されます。
今回はサンプルスクリプトを用いて、API経由でテストブロッカーを一括設定する方法についてご紹介しました。テストブロッカーに興味はあるものの、設定箇所が多く手を付けられずにいた方は、これを機会にお試しください。