Add Daily Test Regression's job
authorTaejin Woo <tt.woo@samsung.com>
Tue, 26 Jun 2018 03:05:45 +0000 (12:05 +0900)
committerYonghee Han <onstudy@samsung.com>
Thu, 31 Jan 2019 01:21:23 +0000 (10:21 +0900)
Change-Id: I773f30400f34651f74a220ad15dd85022d43a68b
Signed-off-by: Taejin Woo <tt.woo@samsung.com>
debian/control
debian/jenkins-scripts-dtr.install [new file with mode: 0644]
debian/rules
dtr/job_dtr_status.py [new file with mode: 0644]
packaging/jenkins-scripts.spec

index 9022f06..f21fb89 100644 (file)
@@ -23,6 +23,7 @@ Depends:  ${python:Depends},
  jenkins-scripts-abs,
  jenkins-scripts-groovyinit,
  jenkins-scripts-pmb,
+ jenkins-scripts-dtr,
  python-mysqldb
 Description: Jenkins build job will call this scripts
   when build job is triggered by Gerrit/OBS event.
@@ -91,3 +92,9 @@ Architecture: all
 Description: pmb scripts for Tools&Services development and test process
 Depends:  ${python:Depends},
  jenkins-scripts-common
+
+Package: jenkins-scripts-dtr
+Architecture: all
+Description: dtr scripts for the view & services for Daily Test Result
+Depends:  ${python:Depends},
+ jenkins-scripts-common
diff --git a/debian/jenkins-scripts-dtr.install b/debian/jenkins-scripts-dtr.install
new file mode 100644 (file)
index 0000000..d9c5081
--- /dev/null
@@ -0,0 +1 @@
+debian/tmp/dtr/* /var/lib/jenkins/jenkins-scripts/dtr/
index 7134c8a..c4794da 100755 (executable)
@@ -23,7 +23,7 @@ install: build
        # Installing package
        mkdir -p $(CURDIR)/debian/tmp/
        install -d $(CURDIR)/debian/tmp/
-       cp -r job_*.py job_*.groovy dir-purge-tool.sh logs-collector.sh common obs_requests templates scripts dep_graph vis groovy_init_scripts trbs abs pmb $(CURDIR)/debian/tmp/
+       cp -r job_*.py job_*.groovy dir-purge-tool.sh logs-collector.sh common obs_requests templates scripts dep_graph vis groovy_init_scripts trbs abs pmb dtr $(CURDIR)/debian/tmp/
 binary-indep: build install
        dh_testdir
        dh_testroot
diff --git a/dtr/job_dtr_status.py b/dtr/job_dtr_status.py
new file mode 100644 (file)
index 0000000..d5fc7fa
--- /dev/null
@@ -0,0 +1,298 @@
+#!/usr/bin/env python3
+#
+# Copyright (C) 2017 Samsung Electronics. Co,. Ltd.
+#
+#    This program is free software; you can redistribute it and/or
+#    modify it under the terms of the GNU General Public License
+#    as published by the Free Software Foundation; version 2
+#    of the License.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program; if not, write to the Free Software
+#    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+#
+
+import os
+import re
+import json
+import sys
+import traceback
+import copy
+import json
+import urllib3
+import requests
+import pprint
+import xlrd
+
+#import job_dtr_db_writer
+
+from datetime import datetime
+
+
+#SAVE_FILE='srbd_daily_total_value.txt'
+
+#####################  1. DTR Version Info #####################
+def change_version_data(input_version):
+    p = re.compile('tizen-.*_[0-9]{8}.[0-9]')
+
+    url = input_version
+    m = p.search(url)
+    version = m.group()
+
+    return version
+
+
+def dtr_ver_menu_export(sheet, srbd_data):
+    ncol = sheet.ncols
+    nrow = sheet.nrows
+
+    total_results = {}
+    total_results['row']      = nrow
+    total_results['col']      = ncol
+
+    String_list = []
+    for row in range(0, nrow):
+        for col in range(0, ncol):
+            try:
+                 String_list.append(sheet.cell(row, col).value)
+            except Exception as ex:
+                print('error' , ex)
+
+    for i in range(0, len(String_list)):
+        total_results[String_list[i]] = []
+        total_results[String_list[i]] = String_list[i]
+
+    return total_results
+
+
+def dtr_ver_info_export(sheet, srbd_data):
+    ncol = sheet.ncols
+    nrow = sheet.nrows
+
+    total_results = {}
+    total_results['tizen_version'] = []
+    total_results['url_list']      = []
+
+    total_results['row']           = nrow
+    total_results['col']           = ncol
+
+    ver_list = []
+    url_name = []
+    real_url = []
+    for row in range(0, nrow):
+        ver_list.append(sheet.cell(row, 0).value)
+        url_name.append(sheet.cell(row, 1).value)
+        real_url.append(sheet.cell(row, 2).value)
+
+    for row in range(0, nrow):
+        total_results[ver_list[row]] = []
+        total_results[url_name[row]]  = []
+        total_results[url_name[row]].append(real_url[row])
+        total_results['tizen_version'].append(ver_list[row])
+        total_results['url_list'].append(url_name[row])
+
+    for index, url_list in enumerate(total_results['url_list']):
+        tizen_version = change_version_data("".join(total_results[url_list]))
+        total_results[ver_list[index]] = tizen_version
+
+    return total_results
+
+#####################  2. DTR Smoke Test result  #####################
+def dtr_smoke_menu_export(sheet, srbd_data):
+
+    ncol = sheet.ncols
+    nrow = sheet.nrows
+
+    total_results = {}
+    total_results['menus'] = []
+
+    total_results['row'] = nrow
+    total_results['col'] = ncol
+
+    String_list = []
+    for row in range(0, nrow):
+        for col in range(0, ncol):
+            try:
+#                String_list.append(sheet.cell(row, col).value)
+                total_results['menus'].append(sheet.cell(row, col).value)
+            except Exception as ex:
+                print('error' , ex)
+
+    for i in range(0, len(String_list)):
+        total_results[String_list[i]] = []
+
+    return total_results
+
+
+def dtr_smoke_result_export(sheet, srbd_data):
+    ncol = sheet.ncols
+    nrow = sheet.nrows
+
+    total_results = {}
+    total_results['test_cases']    = []
+    total_results['comments']      = []
+    total_results['smoke_result']  = []
+
+    total_results['row'] = nrow
+    total_results['col'] = ncol
+
+    for row in range(0, nrow):
+        for col in range(1, ncol-1):
+            try:
+                total_results['smoke_result'].append(sheet.cell(row, col).value)
+            except Exception as ex:
+                print('error' , ex)
+
+    test_case_list = []
+    comment_list   = []
+    for row in range(0, nrow):
+        test_case_list.append(sheet.cell(row, 0).value)
+        comment_list.append(sheet.cell(row, ncol-1).value)
+
+    for i in range(0, len(test_case_list)):
+        total_results['test_cases'].append(test_case_list[i])
+        total_results['comments'].append(comment_list[i])
+
+    return total_results
+
+
+##################### General export #######################
+def dtr_general_menu_export(sheet, srbd_data, arg_name):
+
+    ncol = sheet.ncols
+    nrow = sheet.nrows
+
+    total_results = {}
+    total_results[arg_name] = []
+
+    total_results['row'] = nrow
+    total_results['col'] = ncol
+
+    for row in range(0, nrow):
+        for col in range(0, ncol):
+            try:
+                total_results[arg_name].append(sheet.cell(row, col).value)
+            except Exception as ex:
+                print('error' , ex)
+
+    return total_results
+
+def dtr_general_result_export(sheet, srbd_data, arg_name):
+
+    ncol = sheet.ncols
+    nrow = sheet.nrows
+
+    total_results = {}
+    total_results[arg_name] = []
+
+    total_results['row'] = nrow
+    total_results['col'] = ncol
+
+    for row in range(0, nrow):
+        for col in range(0, ncol):
+            try:
+                total_results[arg_name].append(sheet.cell(row, col).value)
+            except Exception as ex:
+                print('error' , ex)
+
+    return total_results
+
+##################### Main ##################################
+def main():
+
+    # temp memory
+    test_ver_srbd_data     = {}
+    test_ver_menu_data     = {}
+
+    smoke_menu_data        = {}
+    smoke_result_data      = {}
+
+    tbt_menu_data          = {}
+    tbt_result_data        = {}
+
+    sample_menu_data       = {}
+    sample_result_data     = {}
+
+    unresolved_menu_data   = {}
+    unresolved_result_data = {}
+
+    # complete memory
+    test_ver_menu_list     = {}
+    test_ver_info_list     = {}
+
+    smoke_menu_list        = {}
+    smoke_result_list      = {}
+
+    tbt_menu_list          = {}
+    tbt_result_list        = {}
+
+    sample_menu_list       = {}
+    sample_result_list     = {}
+
+    unresolved_menu_list   = {}
+    unresolved_result_list = {}
+
+    # open excel
+    excel_document = xlrd.open_workbook('Regression_Test_Result_v06_format.xlsx')
+
+    # export each tab contents
+    test_ver_menu_sheet     = excel_document.sheet_by_name('version_menu')
+    test_ver_info_sheet     = excel_document.sheet_by_name('version_info')
+
+    smoke_menu_sheet        = excel_document.sheet_by_name('smoke_menu')
+    smoke_result_sheet      = excel_document.sheet_by_name('smoke_data')
+
+    tbt_menu_sheet          = excel_document.sheet_by_name('tbt_menu')
+    tbt_result_sheet        = excel_document.sheet_by_name('tbt_data')
+
+    sample_menu_sheet       = excel_document.sheet_by_name('sample_menu')
+    sample_result_sheet     = excel_document.sheet_by_name('sample_data')
+
+    unresolved_menu_sheet   = excel_document.sheet_by_name('unresolved_menu')
+    unresolved_result_sheet = excel_document.sheet_by_name('unresolved_data')
+
+
+    ## 1. DTR test ver. data
+    test_ver_menu_list      = dtr_ver_menu_export(test_ver_menu_sheet, test_ver_menu_data)
+    test_ver_info_list      = dtr_ver_info_export(test_ver_info_sheet, test_ver_menu_data)
+
+    ## 2. DTR Smoke data
+    smoke_menu_list         = dtr_smoke_menu_export(smoke_menu_sheet, smoke_menu_data)
+    smoke_result_list       = dtr_smoke_result_export(smoke_result_sheet, smoke_result_data)
+
+    ## 3. DTR TBT data
+    tbt_menu_list           = dtr_general_menu_export(tbt_menu_sheet, tbt_menu_data, "tbt_menus")
+    tbt_result_list         = dtr_general_result_export(tbt_result_sheet, tbt_result_data, "tbt_results")
+
+    ## 4. DTR sample data
+    sample_menu_list        = dtr_general_menu_export(sample_menu_sheet, sample_menu_data, "sample_menus")
+    sample_result_list      = dtr_general_result_export(sample_result_sheet, sample_result_data, "sample_results")
+
+    ## 5. DTR unresolved data
+    unresolved_menu_list    = dtr_general_menu_export(unresolved_menu_sheet, unresolved_menu_data, "unresolved_menus")
+    unresolved_result_list  = dtr_general_result_export(unresolved_result_sheet, unresolved_result_data, "unresolved_results")
+
+    TOTAL_INFO = {
+        'test_ver_menu_data'     :  test_ver_menu_list,
+        'test_ver_info_data'     :  test_ver_info_list,
+        'smoke_menu_data'        :  smoke_menu_list,
+        'smoke_result_data'      :  smoke_result_list,
+        'tbt_menu_data'          :  tbt_menu_list,
+        'tbt_result_data'        :  tbt_result_list,
+        'sample_menu_data'       :  sample_menu_list,
+        'sample_result_data'     :  sample_result_list,
+        'unresolved_menu_data'   :  unresolved_menu_list,
+        'unresolved_result_data' :  unresolved_result_list,
+    }
+
+    pprint.pprint(TOTAL_INFO)
+
+    return 0
+
+if __name__ == '__main__':
+    sys.exit(main())
index 67f88d2..9196c43 100644 (file)
@@ -22,6 +22,7 @@ Requires:       %{name}-trbs = %{version}-%{release}
 Requires:       %{name}-abs = %{version}-%{release}
 Requires:       %{name}-groovyinit = %{version}-%{release}
 Requires:       %{name}-pmb = %{version}-%{release}
+Requires:       %{name}-dtr = %{version}-%{release}
 BuildArch:      noarch
 
 %define homedir /var/lib/jenkins
@@ -48,6 +49,7 @@ Requires:   python-lxml
 Requires:   python-mysql
 Requires:   python-jenkinsapi
 Requires:   python-urllib3
+Requires:   python-xlrd
 Requires:   gbs-api
 %if 0%{?suse_version} <= 1320
 Requires:   python-boto
@@ -112,6 +114,14 @@ Group:      Development/Tools/Building
 %description pmb
 pmb scripts for Tools&Services development and test process
 
+%package dtr
+Summary:    dtr scripts for the view & services for Daily Test Result
+Group:      Development/Tools/Building
+
+%description dtr
+dtr scripts for the view & services for Daily Test Result
+
+
 %prep
 %setup -q
 
@@ -119,7 +129,7 @@ pmb scripts for Tools&Services development and test process
 
 %install
 install -d %{buildroot}%{destdir}
-cp -r job_*.py job_*.groovy codebase.py dir-purge-tool.sh logs-collector.sh common obs_requests templates scripts vis dep_graph trbs abs pmb %{buildroot}%{destdir}/
+cp -r job_*.py job_*.groovy codebase.py dir-purge-tool.sh logs-collector.sh common obs_requests templates scripts vis dep_graph trbs abs pmb dtr %{buildroot}%{destdir}/
 install -d %{buildroot}%{destinitdir}
 cp -r groovy_init_scripts/{Module*,init.groovy,setup.properties.example} %{buildroot}%{destinitdir}/
 install -d %{buildroot}%{homedir}
@@ -372,4 +382,9 @@ fi
 %{destdir}/pmb/job_tool_jira_receiver.py
 %{destdir}/pmb/job_tool_history_update.py
 
+%files dtr
+%defattr(-,jenkins,jenkins)
+%dir %{destdir}/dtr
+%{destdir}/dtr/job_dtr_status.py
+
 %changelog