0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

QualityForward APIでGoogleスプレッドシートに一日の作業件数を記録する

Last updated at Posted at 2020-02-04

QualityForwardはクラウドベースのテスト管理サービスです。Web APIを提供しています。そのWeb APIを使いやすくするため、Google Apps Script用ライブラリを開発中です。

今回はそのGoogle Apps Scriptライブラリを使って、Googleスプレッドシートに一日の作業件数を集計します。

インストール

Google Apps ScriptでのプロジェクトIDは 1ppRPLjuClG0MhtnXYbskdZ8uYGbyCFHv7MFhr0GYa-3IAKEh8B7lmTMb になります。これを取り込んでください。以下はデフォルトの QualityForward として取り込んだ場合の書き方です。

Screenshot_ 2019-11-26 16.54.31.png

初期化

初期化はAPIキーを適用して行います。

var apiKey = 'aaa';
var qf = new QualityForward.Client(apiKey);

テストフェーズの取得

最初にテストフェーズをすべて取得します。

var testPhases = qf.getTestPhases();

次にすべてのテストフェーズについて、テストサイクルを取得します。

for (var i in testPhases) {
  for (var j in testPhases[i].test_suite_assignments) {
    var testSuiteAssignment = testPhases[i].test_suite_assignments[j];
    var testCycles = testSuiteAssignment.getTestCycles();
    // : 次の処理はこの中に記述
  }
}

テスト結果の取得

すべてのテストサイクルについて、テスト結果を取得します。テスト結果の中で本日作業分をフィルタリングします。

for (var k in testCycles) {
  var testCycle = testCycles[k];
  var results = testCycle.getTestResults();
  for (var l in results) {
    var testResult = results[l];
    var d = testResult.executed_at;
    if (d.getFullYear() === today.getFullYear() && 
      d.getMonth() === today.getMonth() &&
      d.getDate() === today.getDate()) {
      ary.push(testResult);
    }
  }
}

テスト結果ごとにグルーピングする

TestResultが取得できたら、例えばテスト結果ごとにグルーピングしてみます。

var group = {};
for (var key in ary) {
  var testResult = ary[key];
  if (!group[testResult.result]) group[testResult.result] = 0;
  group[testResult.result]++;
}

後はスプレッドシートへの出力です。

var resultSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('TestResult')
var lastRow = resultSheet.getRange(resultSheet.getMaxRows(), 1).getNextDataCell(SpreadsheetApp.Direction.UP).getRow();
resultSheet.getRange(lastRow + 1, 1).setValue(today);
resultSheet.getRange(lastRow + 1, 2).setValue(group.pass || 0);
resultSheet.getRange(lastRow + 1, 3).setValue(group.fail || 0);
resultSheet.getRange(lastRow + 1, 4).setValue(group.skip || 0);
resultSheet.getRange(lastRow + 1, 5).setValue(group.cut || 0);
resultSheet.getRange(lastRow + 1, 6).setValue(group.block || 0);
resultSheet.getRange(lastRow + 1, 7).setValue(group.na || 0);
resultSheet.getRange(lastRow + 1, 8).setValue(group.qa || 0);

これを実行すると、スプレッドシートに日付ごとにテスト結果が一覧で記録されます。

Screenshot_ 2019-11-26 17.14.27.png

まとめ

QualityForwardを使えばExcelなどで行っていた煩雑なテスト管理がクラウドベースでできるようになります。ライブラリを使うことで既存システムとの連携も用意です。ぜひお試しください!

QualityForward

0
2
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
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?