QualityForwardはテスト管理のクラウドサービスを提供しています。Web APIも提供しているのですが、各モデルの一覧を返すAPIのみとなっています。検索したり、並び替えるなどの機能がないので、操作が不便に感じる人もいるかも知れません。
そこでGoogle Apps Scriptを間に挟んでQualityForwardへのアクセスを容易にしてみたいと思います。
QualityForward用Google Apps Script SDKを使う
Google Apps ScriptでのプロジェクトIDは 1ppRPLjuClG0MhtnXYbskdZ8uYGbyCFHv7MFhr0GYa-3IAKEh8B7lmTMb
になります。これを取り込んでください。以下はデフォルトの QualityForward
として取り込んだ場合の書き方です。
初期化
初期化はAPIキーを適用して行います。
var apiKey = 'aaa';
var qf = new QualityForward.Client(apiKey);
簡単な使い方
今回はGET処理でデータを取得します。APIキーはパラメータとして与えられるようにします。
function doGet(e) {
var out = ContentService.createTextOutput();
if (!e.parameter.apiKey) {
return out;
}
var qf = new QualityForward.Client(e.parameter.apiKey);
// :
}
今回はテストフェーズを取得します。
var testPhases = qf.getTestPhases();
後はこの内容をJSONとして返却します。全件返却なので特に意味はありません。
var out = ContentService.createTextOutput();
//Mime TypeをJSONに設定
out.setMimeType(ContentService.MimeType.JSON);
//JSONテキストをセットする
out.setContent(JSON.stringify(testPhases));
return out;
試す
では実際に呼び出してみます。
$ curl -L "https://script.google.com/macros/s/AKfycbzb7QkA-EbdynKorbaAqi3pxD8Ue-91w4jrRW1oxob5AGDXxqaN/exec?apiKey=0aa...340" | jq
[
{
"id": 3328,
"project_id": 748,
"name": "Redmine連携",
"start_on": "2019-08-16T00:00:00.000Z",
"end_on": "2019-09-16T00:00:00.000Z",
"redmine_issues_url": "https://moongift.planio.jp/projects/website-redesign/issues.json?key=9fac1c578db4ea6a2bc2362ee0435539",
"test_suite_assignments": [
{
"id": 16492,
"test_phase_id": 3328,
"test_suite_version_id": 13288
}
],
"created_at": "2019-08-16T03:26:32.781Z",
"updated_at": "2019-08-16T03:35:14.758Z"
},
このようにQualityForward APIの結果が返ってきます。後はパラメータを追加して検索結果をフィルタリングしたり、ソートするのも簡単にできそうです。また、集計結果を返す専用のAPIを作るのも難しくないでしょう。