QualityForwardはクラウドベースのテスト管理サービスです。APIを公開しており、テスト管理に関するデータのCRUD操作ができるようになっています。SDKとしてはNode.js、Python、そしてGoogle Apps Scriptを作成中です。
Google Apps Script版SDKについてはデータの取得系は一通り実装されています。今回はSDKを使って担当者ごとのテスト結果集計を行ってみます。
QualityForward用Google Apps Script SDKを使う
Google Apps ScriptでのプロジェクトIDは 1ppRPLjuClG0MhtnXYbskdZ8uYGbyCFHv7MFhr0GYa-3IAKEh8B7lmTMb になります。これを取り込んでください。以下はデフォルトの QualityForward として取り込んだ場合の書き方です。
初期化
初期化はAPIキーを適用して行います。
var apiKey = 'aaa';
var qf = new QualityForward.Client(apiKey);
テスト結果の取得
まずはテスト結果をすべて取得します。これはループ処理が多いので注意してください。
- テストフェーズ
- テストスイートアサインメント
- テストサイクル
- テスト結果
の順番にドリルダウンしていきます。
var ary = [];
var today = new Date;
var testPhases = qf.getTestPhases();
for (var i in testPhases) {
var test_suite_assignments = testPhases[i].get('test_suite_assignments');
for (var j in test_suite_assignments) {
var testSuiteAssignment = 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];
ary.push(testResult);
}
}
}
}
テスト結果の集計
後はテスト結果の入った配列(ary)を集計してきます。
var group = {};
for (var key in ary) {
var testResult = ary[key];
var name = testResult.user.name;
var d = testResult.executed_at;
var date = d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate();
if (!group[date]) {
group[date] = {};
group[date][name] = 0;
}
group[date][name] ++;
}
これを出力した結果は、例えば次のようになります。
Logger.log('担当者ごとの作業結果');
for (var date in group) {
for (var name in group[date]) {
Logger.log(' ' + date + ' : ' + name + ":" + group[date][name] + '件');
}
}
結果です。
[20-01-20 17:11:51:164 JST] 担当者ごとの作業結果
[20-01-20 17:11:51:166 JST] 2019-7-8 : 中津川篤司:43件
[20-01-20 17:11:51:166 JST] 2019-7-9 : 中津川篤司:7件
[20-01-20 17:11:51:167 JST] 2019-8-15 : 中津川篤司:25件
[20-01-20 17:11:51:164 JST] 2019-8-16 : 中津川篤司:3件
[20-01-20 17:11:51:165 JST] 2019-11-26 : 中津川篤司:9件
[20-01-20 17:11:51:165 JST] 2019-12-25 : 中津川篤司:13件
まとめ
この日付、担当者名、数字をGoogleスプレッドシートなどに保存しておくことで、チーム管理に利用することもできるでしょう。データを収集するまでが若干コードが長いですが、収集してしまえば集計は簡単でしょう。