Google Apps Script를 사용하여 QualityForward API의 테스트 집계 결과를 웹 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을 여러분의 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

좋은 웹페이지 즐겨찾기