Google Apps Scriptを使ってQualityForward APIのテスト集計結果をWeb API化する
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;
ウェブアプリケーションとして公開する
スクリプトができあがったら、公開メニューから「ウェブアプリケーションとして導入する」を選択します。
実行してみる
では実行してみます。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として保存しておいたり、メールしたりできるでしょう。皆さんのテスト管理に役立ててください!
Author And Source
この問題について(Google Apps Scriptを使ってQualityForward APIのテスト集計結果をWeb API化する), 我々は、より多くの情報をここで見つけました https://qiita.com/goofmint/items/3001a6cc035e36743563著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .