From ab48dcadc4eb74a126a8d76bece720ab000b1452 Mon Sep 17 00:00:00 2001 From: Milosz Wasilewski Date: Thu, 30 Mar 2017 18:54:46 +0100 Subject: automated: android: add refactored apk-automation Change-Id: I5a81b3c4317dc56f90df37c5a8f83d2547542fab Signed-off-by: Milosz Wasilewski --- automated/android/apk-automation/rl-sqlite.py | 61 +++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100755 automated/android/apk-automation/rl-sqlite.py (limited to 'automated/android/apk-automation/rl-sqlite.py') diff --git a/automated/android/apk-automation/rl-sqlite.py b/automated/android/apk-automation/rl-sqlite.py new file mode 100755 index 0000000..48ff4a8 --- /dev/null +++ b/automated/android/apk-automation/rl-sqlite.py @@ -0,0 +1,61 @@ +import time +from common import ApkTestRunner + + +class ApkRunnerImpl(ApkTestRunner): + def __init__(self, config): + self.config = config + self.config['apk_file_name'] = 'RL_Benchmark_SQLite_v1.3.apk' + self.config['apk_package'] = 'com.redlicense.benchmark.sqlite' + self.config['activity'] = 'com.redlicense.benchmark.sqlite/.Main' + super(ApkRunnerImpl, self).__init__(self.config) + + def execute(self): + self.dump_always() + btn_start = self.vc.findViewWithTextOrRaise(u'Start') + btn_start.touch() + + finished = False + while(not finished): + self.dump_always() + overall_result = self.vc.findViewWithText(u'Overall') + if overall_result: + finished = True + self.logger.info("benchmark finished") + + def __get_score_with_text(self, text): + found_score_view = False + while not found_score_view: + linear_layout = self.vc.findViewByIdOrRaise("com.redlicense.benchmark.sqlite:id/stats") + for ch in linear_layout.children: + subitem = self.vc.findViewWithText(text, ch) + if subitem: + subitem_result = self.vc.findViewByIdOrRaise("com.redlicense.benchmark.sqlite:id/test_result", ch) + score = subitem_result.getText().replace("sec", "").strip() + score_in_ms = float(score) * 1000 + self.report_result("RL-sqlite-" + text.replace(" ", "-"), 'pass', str(score_in_ms), "ms") + found_score_view = True + break + if subitem is None: + self.logger.info("%s not found, need to pageup" % text) + self.device.press('DPAD_UP') + time.sleep(2) + self.device.press('DPAD_UP') + time.sleep(2) + self.dump_always() + + def parseResult(self): + self.__get_score_with_text("Overall") + self.__get_score_with_text("DROP TABLE") + self.__get_score_with_text("DELETE with an index") + self.__get_score_with_text("DELETE without an index") + self.__get_score_with_text("INSERTs from a SELECT") + self.__get_score_with_text("25000 UPDATEs with an index") + self.__get_score_with_text("1000 UPDATEs without an index") + self.__get_score_with_text("5000 SELECTs with an index") + self.__get_score_with_text("Creating an index") + self.__get_score_with_text("100 SELECTs on a string comparison") + self.__get_score_with_text("100 SELECTs without an index") + self.__get_score_with_text("25000 INSERTs into an indexed table in a transaction") + self.__get_score_with_text("25000 INSERTs in a transaction") + self.__get_score_with_text("1000 INSERTs") -- cgit v1.2.3