Skip to content

Commit 12b9cb4

Browse files
perf split
1 parent a55d48a commit 12b9cb4

File tree

4 files changed

+86
-225
lines changed

4 files changed

+86
-225
lines changed

products/nativescript/perf_helpers.py

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
import json
2+
import os
3+
from core.enums.platform_type import Platform
4+
from core.settings import Settings
5+
from core.utils.file_utils import Folder, File
6+
from core.utils.gradle import Gradle
7+
from core.utils.json_utils import JsonUtils
8+
from core.utils.npm import Npm
9+
from core.utils.xcode import Xcode
10+
from data.changes import Sync
11+
from products.nativescript.tns import Tns
12+
13+
RETRY_COUNT = 3
14+
# TOLERANCE = 0.20
15+
APP_NAME = Settings.AppName.DEFAULT
16+
EXPECTED_RESULTS = JsonUtils.read(os.path.join(Settings.TEST_RUN_HOME, 'tests', 'perf', 'data.json'))
17+
18+
class PrepareBuildInfo(object):
19+
prepare_initial = 0
20+
prepare_skip = 0
21+
prepare_incremental = 0
22+
build_initial = 0
23+
build_incremental = 0
24+
25+
26+
class Helpers(object):
27+
@staticmethod
28+
def prepare_and_build(template, platform, change_set, result_file):
29+
prepare_initial = 0
30+
build_initial = 0
31+
build_incremental = 0
32+
for _ in range(RETRY_COUNT):
33+
Tns.kill()
34+
Gradle.kill()
35+
Npm.cache_clean()
36+
Xcode.cache_clean()
37+
Folder.clean(folder=os.path.join(Settings.TEST_RUN_HOME, APP_NAME))
38+
Tns.create(app_name=APP_NAME, template=template, update=True)
39+
if platform == Platform.ANDROID:
40+
Tns.platform_add_android(app_name=APP_NAME, framework_path=Settings.Android.FRAMEWORK_PATH)
41+
elif platform == Platform.IOS:
42+
Tns.platform_add_ios(app_name=APP_NAME, framework_path=Settings.IOS.FRAMEWORK_PATH)
43+
else:
44+
raise Exception('Unknown platform: ' + str(platform))
45+
46+
# Prepare
47+
time = Tns.prepare(app_name=APP_NAME, platform=platform, bundle=True).duration
48+
prepare_initial = prepare_initial + time
49+
50+
# Build
51+
time = Tns.build(app_name=APP_NAME, platform=platform, bundle=True).duration
52+
build_initial = build_initial + time
53+
Sync.replace(app_name=APP_NAME, change_set=change_set)
54+
time = Tns.build(app_name=APP_NAME, platform=platform, bundle=True).duration
55+
build_incremental = build_incremental + time
56+
57+
# Calculate averages
58+
result = PrepareBuildInfo()
59+
result.prepare_initial = prepare_initial / RETRY_COUNT
60+
result.build_initial = build_initial / RETRY_COUNT
61+
result.build_incremental = build_incremental / RETRY_COUNT
62+
63+
# Save to results file
64+
File.delete(path=result_file)
65+
result_json = json.dumps(result, default=lambda o: o.__dict__, sort_keys=True, indent=4)
66+
File.write(path=result_file, text=str(result_json))
67+
68+
@staticmethod
69+
def get_result_file_name(template, platform):
70+
result_file = os.path.join(Settings.TEST_OUT_HOME, '{0}_{1}.json'.format(template, str(platform)))
71+
return result_file
72+
73+
@staticmethod
74+
def get_actual_result(template, platform, entry):
75+
result_file = Helpers.get_result_file_name(template, platform)
76+
return JsonUtils.read(result_file)[entry]
77+
78+
@staticmethod
79+
def get_expected_result(template, platform, entry):
80+
platform = str(platform)
81+
return EXPECTED_RESULTS[template][platform][entry]
Lines changed: 2 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
# pylint: disable=unused-argument
22
# pylint: disable=undefined-variable
33

4-
import json
5-
import os
64
import unittest
75

86
from parameterized import parameterized
@@ -11,20 +9,12 @@
119
from core.enums.os_type import OSType
1210
from core.enums.platform_type import Platform
1311
from core.settings import Settings
14-
from core.utils.file_utils import Folder, File
15-
from core.utils.gradle import Gradle
16-
from core.utils.json_utils import JsonUtils
17-
from core.utils.npm import Npm
1812
from core.utils.perf_utils import PerfUtils
19-
from core.utils.xcode import Xcode
20-
from data.changes import Changes, Sync
13+
from data.changes import Changes
2114
from data.templates import Template
22-
from products.nativescript.tns import Tns
15+
from products.nativescript.perf_helpers import Helpers
2316

24-
RETRY_COUNT = 3
2517
TOLERANCE = 0.20
26-
APP_NAME = Settings.AppName.DEFAULT
27-
EXPECTED_RESULTS = JsonUtils.read(os.path.join(Settings.TEST_RUN_HOME, 'tests', 'perf', 'data.json'))
2818

2919

3020
# noinspection PyMethodMayBeStatic,PyUnusedLocal
@@ -91,69 +81,3 @@ def test_311_build_ios_incremental(self, template, template_package, change_set)
9181
actual = Helpers.get_actual_result(template, Platform.IOS, 'build_incremental')
9282
expected = Helpers.get_expected_result(template, Platform.IOS, 'build_incremental')
9383
assert PerfUtils.is_value_in_range(actual, expected, TOLERANCE), 'Incremental ios build time is not OK.'
94-
95-
96-
class PrepareBuildInfo(object):
97-
prepare_initial = 0
98-
prepare_skip = 0
99-
prepare_incremental = 0
100-
build_initial = 0
101-
build_incremental = 0
102-
103-
104-
class Helpers(object):
105-
@staticmethod
106-
def prepare_and_build(template, platform, change_set, result_file):
107-
prepare_initial = 0
108-
build_initial = 0
109-
build_incremental = 0
110-
for _ in range(RETRY_COUNT):
111-
Tns.kill()
112-
Gradle.kill()
113-
Npm.cache_clean()
114-
Xcode.cache_clean()
115-
Folder.clean(folder=os.path.join(Settings.TEST_RUN_HOME, APP_NAME))
116-
Tns.create(app_name=APP_NAME, template=template, update=True)
117-
if platform == Platform.ANDROID:
118-
Tns.platform_add_android(app_name=APP_NAME, framework_path=Settings.Android.FRAMEWORK_PATH)
119-
elif platform == Platform.IOS:
120-
Tns.platform_add_ios(app_name=APP_NAME, framework_path=Settings.IOS.FRAMEWORK_PATH)
121-
else:
122-
raise Exception('Unknown platform: ' + str(platform))
123-
124-
# Prepare
125-
time = Tns.prepare(app_name=APP_NAME, platform=platform, bundle=True).duration
126-
prepare_initial = prepare_initial + time
127-
128-
# Build
129-
time = Tns.build(app_name=APP_NAME, platform=platform, bundle=True).duration
130-
build_initial = build_initial + time
131-
Sync.replace(app_name=APP_NAME, change_set=change_set)
132-
time = Tns.build(app_name=APP_NAME, platform=platform, bundle=True).duration
133-
build_incremental = build_incremental + time
134-
135-
# Calculate averages
136-
result = PrepareBuildInfo()
137-
result.prepare_initial = prepare_initial / RETRY_COUNT
138-
result.build_initial = build_initial / RETRY_COUNT
139-
result.build_incremental = build_incremental / RETRY_COUNT
140-
141-
# Save to results file
142-
File.delete(path=result_file)
143-
result_json = json.dumps(result, default=lambda o: o.__dict__, sort_keys=True, indent=4)
144-
File.write(path=result_file, text=str(result_json))
145-
146-
@staticmethod
147-
def get_result_file_name(template, platform):
148-
result_file = os.path.join(Settings.TEST_OUT_HOME, '{0}_{1}.json'.format(template, str(platform)))
149-
return result_file
150-
151-
@staticmethod
152-
def get_actual_result(template, platform, entry):
153-
result_file = Helpers.get_result_file_name(template, platform)
154-
return JsonUtils.read(result_file)[entry]
155-
156-
@staticmethod
157-
def get_expected_result(template, platform, entry):
158-
platform = str(platform)
159-
return EXPECTED_RESULTS[template][platform][entry]
Lines changed: 2 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
# pylint: disable=unused-argument
22
# pylint: disable=undefined-variable
33

4-
import json
5-
import os
64
import unittest
75

86
from parameterized import parameterized
@@ -11,20 +9,12 @@
119
from core.enums.os_type import OSType
1210
from core.enums.platform_type import Platform
1311
from core.settings import Settings
14-
from core.utils.file_utils import Folder, File
15-
from core.utils.gradle import Gradle
16-
from core.utils.json_utils import JsonUtils
17-
from core.utils.npm import Npm
1812
from core.utils.perf_utils import PerfUtils
19-
from core.utils.xcode import Xcode
20-
from data.changes import Changes, Sync
13+
from data.changes import Changes
2114
from data.templates import Template
22-
from products.nativescript.tns import Tns
15+
from products.nativescript.perf_helpers import Helpers
2316

24-
RETRY_COUNT = 3
2517
TOLERANCE = 0.20
26-
APP_NAME = Settings.AppName.DEFAULT
27-
EXPECTED_RESULTS = JsonUtils.read(os.path.join(Settings.TEST_RUN_HOME, 'tests', 'perf', 'data.json'))
2818

2919

3020
# noinspection PyMethodMayBeStatic,PyUnusedLocal
@@ -91,69 +81,3 @@ def test_311_build_ios_incremental(self, template, template_package, change_set)
9181
actual = Helpers.get_actual_result(template, Platform.IOS, 'build_incremental')
9282
expected = Helpers.get_expected_result(template, Platform.IOS, 'build_incremental')
9383
assert PerfUtils.is_value_in_range(actual, expected, TOLERANCE), 'Incremental ios build time is not OK.'
94-
95-
96-
class PrepareBuildInfo(object):
97-
prepare_initial = 0
98-
prepare_skip = 0
99-
prepare_incremental = 0
100-
build_initial = 0
101-
build_incremental = 0
102-
103-
104-
class Helpers(object):
105-
@staticmethod
106-
def prepare_and_build(template, platform, change_set, result_file):
107-
prepare_initial = 0
108-
build_initial = 0
109-
build_incremental = 0
110-
for _ in range(RETRY_COUNT):
111-
Tns.kill()
112-
Gradle.kill()
113-
Npm.cache_clean()
114-
Xcode.cache_clean()
115-
Folder.clean(folder=os.path.join(Settings.TEST_RUN_HOME, APP_NAME))
116-
Tns.create(app_name=APP_NAME, template=template, update=True)
117-
if platform == Platform.ANDROID:
118-
Tns.platform_add_android(app_name=APP_NAME, framework_path=Settings.Android.FRAMEWORK_PATH)
119-
elif platform == Platform.IOS:
120-
Tns.platform_add_ios(app_name=APP_NAME, framework_path=Settings.IOS.FRAMEWORK_PATH)
121-
else:
122-
raise Exception('Unknown platform: ' + str(platform))
123-
124-
# Prepare
125-
time = Tns.prepare(app_name=APP_NAME, platform=platform, bundle=True).duration
126-
prepare_initial = prepare_initial + time
127-
128-
# Build
129-
time = Tns.build(app_name=APP_NAME, platform=platform, bundle=True).duration
130-
build_initial = build_initial + time
131-
Sync.replace(app_name=APP_NAME, change_set=change_set)
132-
time = Tns.build(app_name=APP_NAME, platform=platform, bundle=True).duration
133-
build_incremental = build_incremental + time
134-
135-
# Calculate averages
136-
result = PrepareBuildInfo()
137-
result.prepare_initial = prepare_initial / RETRY_COUNT
138-
result.build_initial = build_initial / RETRY_COUNT
139-
result.build_incremental = build_incremental / RETRY_COUNT
140-
141-
# Save to results file
142-
File.delete(path=result_file)
143-
result_json = json.dumps(result, default=lambda o: o.__dict__, sort_keys=True, indent=4)
144-
File.write(path=result_file, text=str(result_json))
145-
146-
@staticmethod
147-
def get_result_file_name(template, platform):
148-
result_file = os.path.join(Settings.TEST_OUT_HOME, '{0}_{1}.json'.format(template, str(platform)))
149-
return result_file
150-
151-
@staticmethod
152-
def get_actual_result(template, platform, entry):
153-
result_file = Helpers.get_result_file_name(template, platform)
154-
return JsonUtils.read(result_file)[entry]
155-
156-
@staticmethod
157-
def get_expected_result(template, platform, entry):
158-
platform = str(platform)
159-
return EXPECTED_RESULTS[template][platform][entry]

tests/perf/tooling/build_perf_master_detail_ng.py

Lines changed: 1 addition & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,10 @@
1919
from core.utils.xcode import Xcode
2020
from data.changes import Changes, Sync
2121
from data.templates import Template
22+
from products.nativescript.perf_helpers import Helpers
2223
from products.nativescript.tns import Tns
2324

24-
RETRY_COUNT = 3
2525
TOLERANCE = 0.20
26-
APP_NAME = Settings.AppName.DEFAULT
27-
EXPECTED_RESULTS = JsonUtils.read(os.path.join(Settings.TEST_RUN_HOME, 'tests', 'perf', 'data.json'))
2826

2927

3028
# noinspection PyMethodMayBeStatic,PyUnusedLocal
@@ -91,69 +89,3 @@ def test_311_build_ios_incremental(self, template, template_package, change_set)
9189
actual = Helpers.get_actual_result(template, Platform.IOS, 'build_incremental')
9290
expected = Helpers.get_expected_result(template, Platform.IOS, 'build_incremental')
9391
assert PerfUtils.is_value_in_range(actual, expected, TOLERANCE), 'Incremental ios build time is not OK.'
94-
95-
96-
class PrepareBuildInfo(object):
97-
prepare_initial = 0
98-
prepare_skip = 0
99-
prepare_incremental = 0
100-
build_initial = 0
101-
build_incremental = 0
102-
103-
104-
class Helpers(object):
105-
@staticmethod
106-
def prepare_and_build(template, platform, change_set, result_file):
107-
prepare_initial = 0
108-
build_initial = 0
109-
build_incremental = 0
110-
for _ in range(RETRY_COUNT):
111-
Tns.kill()
112-
Gradle.kill()
113-
Npm.cache_clean()
114-
Xcode.cache_clean()
115-
Folder.clean(folder=os.path.join(Settings.TEST_RUN_HOME, APP_NAME))
116-
Tns.create(app_name=APP_NAME, template=template, update=True)
117-
if platform == Platform.ANDROID:
118-
Tns.platform_add_android(app_name=APP_NAME, framework_path=Settings.Android.FRAMEWORK_PATH)
119-
elif platform == Platform.IOS:
120-
Tns.platform_add_ios(app_name=APP_NAME, framework_path=Settings.IOS.FRAMEWORK_PATH)
121-
else:
122-
raise Exception('Unknown platform: ' + str(platform))
123-
124-
# Prepare
125-
time = Tns.prepare(app_name=APP_NAME, platform=platform, bundle=True).duration
126-
prepare_initial = prepare_initial + time
127-
128-
# Build
129-
time = Tns.build(app_name=APP_NAME, platform=platform, bundle=True).duration
130-
build_initial = build_initial + time
131-
Sync.replace(app_name=APP_NAME, change_set=change_set)
132-
time = Tns.build(app_name=APP_NAME, platform=platform, bundle=True).duration
133-
build_incremental = build_incremental + time
134-
135-
# Calculate averages
136-
result = PrepareBuildInfo()
137-
result.prepare_initial = prepare_initial / RETRY_COUNT
138-
result.build_initial = build_initial / RETRY_COUNT
139-
result.build_incremental = build_incremental / RETRY_COUNT
140-
141-
# Save to results file
142-
File.delete(path=result_file)
143-
result_json = json.dumps(result, default=lambda o: o.__dict__, sort_keys=True, indent=4)
144-
File.write(path=result_file, text=str(result_json))
145-
146-
@staticmethod
147-
def get_result_file_name(template, platform):
148-
result_file = os.path.join(Settings.TEST_OUT_HOME, '{0}_{1}.json'.format(template, str(platform)))
149-
return result_file
150-
151-
@staticmethod
152-
def get_actual_result(template, platform, entry):
153-
result_file = Helpers.get_result_file_name(template, platform)
154-
return JsonUtils.read(result_file)[entry]
155-
156-
@staticmethod
157-
def get_expected_result(template, platform, entry):
158-
platform = str(platform)
159-
return EXPECTED_RESULTS[template][platform][entry]

0 commit comments

Comments
 (0)