LoginSignup
0
0

More than 3 years have passed since last update.

Google Apps Scriptを使ってQualityForward APIのテスト集計結果をWeb API化する

Last updated at Posted at 2020-03-03

QualityForwardはテスト管理のクラウドサービスを提供しています。Web APIも提供しているのですが、各モデルの一覧を返すAPIのみとなっています。検索したり、並び替えるなどの機能がないので、操作が不便に感じる人もいるかも知れません。

そこでGoogle Apps Scriptを間に挟んでQualityForwardの集計結果を返すWeb APIを実現してみます。

QualityForward用Google Apps Script SDKを使う

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

初期化

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

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

セットアップ

GET処理でデータを取得するので、doGet関数を使います。そしてAPIキーはパラメータとして与えられるようにします。

function doGet(e) {
  var out = ContentService.createTextOutput();
  if (!e.parameter.apiKey) {
    return out;
  }
  var qf = new QualityForward.Client(e.parameter.apiKey);
  // :
}

日々の作業件数を取得する

今回は日々の作業件数を、その結果毎に集計していきます。すべてのテスト結果を得るためには、すべてのテストフェーズ → テストアサインメント → テストサイクル → テスト結果とドリルダウンしながらデータを取得します。それらのデータについて日ごとに集計していきます。

var ary = {};
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;
        var date = d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate();
        if (!ary[date]) {
          ary[date] = {
            pass: 0, fail: 0, skip: 0,
            cut: 0, block: 0, na: 0,
            qa: 0
          }
        }
        ary[date][testResult.result]++;
      }
    }
  }
}

後はこの結果をJSONで返すだけです。

//JSONテキストをセットする
out.setContent(JSON.stringify(ary));
return out;

ウェブアプリケーションとして公開する

スクリプトができあがったら、公開メニューから「ウェブアプリケーションとして導入する」を選択します。

ScreenShot_ 2019-12-20 15.38.59.png

実行してみる

では実行してみます。APIキーは皆さんが使っているものに置き換えてください。また、Google Apps ScriptのURLも皆さんのものに変更してください。

$ curl -L https://script.google.com/macros/s/AKf...5Xg/exec?apiKey=0aa...340 | jq
{
  "2019-8-16": {
    "pass": 2,
    "fail": 1,
    "skip": 0,
    "cut": 0,
    "block": 0,
    "na": 0,
    "qa": 0
  },
  "2019-11-26": {
    "pass": 4,
    "fail": 1,
    "skip": 1,
    "cut": 1,
    "block": 1,
    "na": 0,
    "qa": 1
  },

このように結果が返ってくれば問題ありません。

まとめ

後はこの結果をCSVとして保存しておいたり、メールしたりできるでしょう。皆さんのテスト管理に役立ててください!

QualityForward

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