From b096c11ec9d7f116969de6fd963115566bddee7c Mon Sep 17 00:00:00 2001 From: muendelezaji Date: Tue, 17 May 2016 14:06:15 +0100 Subject: [PATCH] Add to google slides workloads - support for creating new PPT - parameterised local files - added helper functions --- wlauto/workloads/googleslides/__init__.py | 24 +-- .../com.arm.wlauto.uiauto.googleslides.jar | Bin 11084 -> 12040 bytes .../com/arm/wlauto/uiauto/UiAutomation.java | 148 +++++++++++++----- 3 files changed, 125 insertions(+), 47 deletions(-) diff --git a/wlauto/workloads/googleslides/__init__.py b/wlauto/workloads/googleslides/__init__.py index 205f9e78..183606bb 100644 --- a/wlauto/workloads/googleslides/__init__.py +++ b/wlauto/workloads/googleslides/__init__.py @@ -17,6 +17,7 @@ import os import os.path as path import re from wlauto import AndroidUiAutoBenchmark, Parameter +from wlauto.utils.types import list_of_strings def not_implemented(workload, text): @@ -34,8 +35,9 @@ class GoogleSlides(AndroidUiAutoBenchmark): # Views for FPS instrumentation view = [ - "com.google.android.apps.docs.editors.slides/com.google.android.apps.docs.app.DocListActivity", - "com.google.android.apps.docs.editors.slides/com.google.android.apps.docs.welcome.warmwelcome.TrackingWelcomeActivity", + package + '/com.google.android.apps.docs.app.DocListActivity', + package + '/com.google.android.apps.docs.welcome.warmwelcome.TrackingWelcomeActivity', + package + '/com.google.android.apps.docs.app.NewMainProxyActivity', ] parameters = [ @@ -44,7 +46,8 @@ class GoogleSlides(AndroidUiAutoBenchmark): If ``True``, dumpsys captures will be carried out during the test run. The output is piped to log files which are then pulled from the phone. '''), - Parameter('local_files', kind=bool, default=True, + # Parameter('local_files', kind=list_of_strings, default=['Slides_Album.pptx', 'Slides_Pitch.pptx'], + Parameter('local_files', kind=list_of_strings, description=''' If ``True``, the workload will push PowerPoint files to be used for testing on the device. Otherwise, the files will be created from template inside the app. @@ -59,7 +62,7 @@ class GoogleSlides(AndroidUiAutoBenchmark): def __init__(self, device, **kwargs): super(GoogleSlides, self).__init__(device, **kwargs) self.output_file = path.join(self.device.working_directory, self.instrumentation_log) - self.run_timeout = 60 + self.run_timeout = 120 def validate(self): log_method(self, 'validate') @@ -67,6 +70,8 @@ class GoogleSlides(AndroidUiAutoBenchmark): self.uiauto_params['dumpsys_enabled'] = self.dumpsys_enabled self.uiauto_params['output_dir'] = self.device.working_directory self.uiauto_params['results_file'] = self.output_file + if self.local_files: + self.uiauto_params['local_files'] = '::'.join(self.local_files) def initialize(self, context): log_method(self, 'initialize') @@ -75,12 +80,12 @@ class GoogleSlides(AndroidUiAutoBenchmark): # push local PPT files for entry in os.listdir(self.local_dir): wa_file = self.file_prefix + entry - if entry.endswith(".pptx"): + if entry.endswith('.pptx'): self.device.push_file(path.join(self.local_dir, entry), path.join(self.device_dir, wa_file), timeout=60) # Force a re-index of the mediaserver cache to pick up new files - self.device.execute('am broadcast -a android.intent.action.MEDIA_MOUNTED -d file:///sdcard') + # self.device.execute('am broadcast -a android.intent.action.MEDIA_MOUNTED -d file:///sdcard') def setup(self, context): log_method(self, 'setup') @@ -93,8 +98,7 @@ class GoogleSlides(AndroidUiAutoBenchmark): def update_result(self, context): log_method(self, 'update_result') super(GoogleSlides, self).update_result(context) - if self.dumpsys_enabled: - not_implemented(self, 'get_metrics(context)') + not_implemented(self, 'get_metrics(context)') def teardown(self, context): log_method(self, 'teardown') @@ -108,10 +112,10 @@ class GoogleSlides(AndroidUiAutoBenchmark): # delete pushed PPT files for entry in os.listdir(self.local_dir): wa_file = self.file_prefix + entry - if entry.endswith(".pptx"): + if entry.endswith('.pptx'): self.device.delete_file(path.join(self.device_dir, wa_file)) # Force a re-index of the mediaserver cache to pick up new files - self.device.execute('am broadcast -a android.intent.action.MEDIA_MOUNTED -d file:///sdcard') + # self.device.execute('am broadcast -a android.intent.action.MEDIA_MOUNTED -d file:///sdcard') def get_metrics(self, context): self.device.pull_file(self.output_file, context.output_directory) diff --git a/wlauto/workloads/googleslides/com.arm.wlauto.uiauto.googleslides.jar b/wlauto/workloads/googleslides/com.arm.wlauto.uiauto.googleslides.jar index 456cac32ee9157b5d1db6a4faf92c31137a38a4b..848b50b9dbc5418316196e9978fc599cd3c9be76 100644 GIT binary patch delta 11799 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 diff --git a/wlauto/workloads/googleslides/uiauto/src/com/arm/wlauto/uiauto/UiAutomation.java b/wlauto/workloads/googleslides/uiauto/src/com/arm/wlauto/uiauto/UiAutomation.java index b9d5b8b8..0c93057c 100644 --- a/wlauto/workloads/googleslides/uiauto/src/com/arm/wlauto/uiauto/UiAutomation.java +++ b/wlauto/workloads/googleslides/uiauto/src/com/arm/wlauto/uiauto/UiAutomation.java @@ -23,6 +23,7 @@ import android.app.Activity; import android.content.Context; import android.net.wifi.WifiManager; import android.os.Bundle; +import android.os.SystemClock; import android.util.Log; import android.view.KeyEvent; @@ -51,21 +52,21 @@ public class UiAutomation extends UxPerfUiAutomation { public static final int DOCTYPE_PPT = 2; public static final int DOCTYPE_SLIDES = 3; - private Map results = new LinkedHashMap(); + protected Map results = new LinkedHashMap(); - private Bundle parameters; - private boolean dumpsysEnabled; - private String outputDir; - private String documentName; - private boolean useLocalFiles; - - private static final String[] DEFAULT_DOCS = { "wa_test_Slides_Album.pptx", "wa_test_Slides_Pitch.pptx" }; + protected Bundle parameters; + protected boolean dumpsysEnabled; + protected String outputDir; + protected String[] documents; + protected boolean useLocalFiles; + protected String resultsFile; public void parseParams(Bundle parameters) throws Exception { dumpsysEnabled = Boolean.parseBoolean(parameters.getString("dumpsys_enabled")); - outputDir = parameters.getString("output_dir", "/sdcard/wa-working"); - documentName = parameters.getString("local_files", DEFAULT_DOCS[0]); - useLocalFiles = true; + outputDir = parameters.getString("output_dir"); + resultsFile = parameters.getString("results_file"); + documents = parameters.getString("local_files", "::").split("::"); + useLocalFiles = documents.length != 0; } public void runUiAutomation() throws Exception { @@ -73,28 +74,31 @@ public class UiAutomation extends UxPerfUiAutomation { parseParams(parameters); skipWelcomeScreen(); enablePowerpointCompat(); - if (useLocalFiles) { // TODO currently unused - openFromStorage(documentName); + if (useLocalFiles) { + openFromStorage(documents[0]); } else { - createNewDoc(DOCTYPE_TEMPLATE); + // createNewDoc(DOCTYPE_TEMPLATE); + createNewDoc(DOCTYPE_PPT); } - setWifiStatus(false); - tapDisplayNormalised(0.99, 0.99); + + // toggleWifiState(false); + // tapDisplayNormalised(0.99, 0.99); // dismiss help overlay sleep(5); getUiDevice().pressBack(); + deleteDocument(); if (false) { // TODO currently unused writeResultsToFile(results, parameters.getString("results_file")); } } - private void skipWelcomeScreen() throws Exception { + protected void skipWelcomeScreen() throws Exception { UiObject skipButton = getUiObjectByText("Skip", CLASS_BUTTON); skipButton.clickAndWaitForNewWindow(); sleep(1); } - private void enablePowerpointCompat() throws Exception { + protected void enablePowerpointCompat() throws Exception { uiDeviceEdgeSwipeFromLeft(10); UiObject settings = getUiObjectByText("Settings", CLASS_TEXT_VIEW); settings.clickAndWaitForNewWindow(); @@ -104,7 +108,7 @@ public class UiAutomation extends UxPerfUiAutomation { sleep(1); } - private void openFromStorage(String document) throws Exception { + protected void openFromStorage(String document) throws Exception { // UiObject newButton = getUiObjectByResourceId(PACKAGE_ID + "menu_open_with_picker", CLASS_TEXT_VIEW); UiObject openButton = getUiObjectByDescription("Open presentation", CLASS_TEXT_VIEW); openButton.click(); @@ -120,11 +124,9 @@ public class UiAutomation extends UxPerfUiAutomation { sleep(1); } - private void createNewDoc(int docType) throws Exception { - // UiObject newButton = getUiObjectByResourceId(PACKAGE_ID + "fab_base_button", CLASS_IMAGE_BUTTON); + protected void createNewDoc(int docType) throws Exception { UiObject newButton = getUiObjectByDescription("New presentation", CLASS_IMAGE_BUTTON); newButton.click(); - // UiObject fromTemplate = getUiObjectByDescription("Choose template", CLASS_IMAGE_BUTTON); UiObject fromTemplate = getUiObjectByText("Choose template", CLASS_TEXT_VIEW); // UiObject newPowerpoint = getUiObjectByDescription("New PowerPoint", CLASS_IMAGE_BUTTON); @@ -143,6 +145,22 @@ public class UiAutomation extends UxPerfUiAutomation { case DOCTYPE_PPT: newPowerpoint.clickAndWaitForNewWindow(); + enterTextInSlide("Title", "WORKLOAD AUTOMATION"); + enterTextInSlide("Subtitle", "Measuring perfomance of different productivity apps on Android OS"); + UiObject view = getViewByDesc("Insert slide"); + view.clickAndWaitForNewWindow(); + view = getViewByText("Title and Content"); + view.clickAndWaitForNewWindow(); + enterTextInSlide("title", "INTRODUCTION"); + enterTextInSlide("Text placeholder", "Welcome to Documentation for Workload Automation"); + view = getViewByDesc("Undo"); + view.click(); + sleep(1); + enterTextInSlide("Text placeholder", "Workload Automation (WA) is a framework for running workloads on real hardware devices. " + + "WA supports a number of output formats as well as additional instrumentation " + + "(such as Streamline traces). A number of workloads are included with the framework."); + view = getViewByDesc("Done"); + view.clickAndWaitForNewWindow(); break; case DOCTYPE_SLIDES: @@ -153,6 +171,54 @@ public class UiAutomation extends UxPerfUiAutomation { sleep(1); } + public UiObject enterTextInSlide(String viewName, String textToEnter) throws Exception { + UiObject view = getViewByDesc(viewName); + view.click(); + SystemClock.sleep(100); + view.click(); // double click + view.setText(textToEnter); + getUiDevice().pressBack(); + return view; + } + + public void deleteDocument() throws Exception { + UiObject moreOptions = getUiObjectByResourceId(PACKAGE_ID + "more_actions_button", CLASS_IMAGE_BUTTON); + moreOptions.click(); + UiObject deleteButton = getUiObjectByText("Remove", CLASS_TEXT_VIEW); + deleteButton.click(); + try { + deleteButton = getUiObjectByText("Remove", CLASS_BUTTON); + } catch (UiObjectNotFoundException e) { + deleteButton = getUiObjectByText("Ok", CLASS_BUTTON); + } + deleteButton.clickAndWaitForNewWindow(); + sleep(1); + } + + public UiObject getViewByText(String text) throws Exception { + UiObject object = new UiObject(new UiSelector().textContains(text)); + if (!object.waitForExists(waitTimeout)) { + throw new UiObjectNotFoundException("Could not find view with text: " + text); + }; + return object; + } + + public UiObject getViewByDesc(String desc) throws Exception { + UiObject object = new UiObject(new UiSelector().descriptionContains(desc)); + if (!object.waitForExists(waitTimeout)) { + throw new UiObjectNotFoundException("Could not find view with description: " + desc); + }; + return object; + } + + public UiObject getViewById(String id) throws Exception { + UiObject object = new UiObject(new UiSelector().resourceId(id)); + if (!object.waitForExists(waitTimeout)) { + throw new UiObjectNotFoundException("Could not find view with resource ID: " + id); + }; + return object; + } + public void uiDeviceEdgeSwipeFromLeft(int steps) { int height = getDisplayHeight(); int width = getDisplayWidth(); @@ -167,25 +233,33 @@ public class UiAutomation extends UxPerfUiAutomation { getUiDevice().click(tapX, tapY); } - public void setWifiStatus(boolean flag) throws Exception { + public void toggleWifiState(boolean flag) throws Exception { + int exitValue = -1; // To enable, check for "UninitializedState" - String checkFor = flag ? "UninitializedState" : "ConnectedState"; - String adbCommand = - "dumpsys wifi | grep curState=" + checkFor + ";" - + "exit_code=$?;" - + "if [ $exit_code = 0 ]; then" - + " am start -a android.intent.action.MAIN -n com.android.settings/.wifi.WifiSettings;" - + " input keyevent 20;" - + " input keyevent 23;" - + " sleep 1;" - + " input keyevent 4;" - + "fi"; - runShellCommand(adbCommand); - // runShellCommand("dumpsys wifi | grep curState=ConnectedState"); + // String checkFor = flag ? "UninitializedState" : "ConnectedState"; + // exitValue = runShellCommand("dumpsys wifi | grep curState=" + checkFor); + // if (0 == exitValue) { // toggle state + String statusString = flag ? "ConnectedState" : "UninitializedState"; + exitValue = runShellCommand("dumpsys wifi | grep curState=" + statusString); + if (0 != exitValue) { // not in the expected so toggle it + String[] adbCommands = { + "am start -a android.intent.action.MAIN -n com.android.settings/.wifi.WifiSettings;", + "input keyevent 20;", + "input keyevent 23;", + "sleep 1;", + "input keyevent 4;", + }; + for (String command : adbCommands) { + exitValue = runShellCommand(command); + } + } sleep(1); } - public void runShellCommand(String command) throws Exception { + public int runShellCommand(String command) throws Exception { Process proc = Runtime.getRuntime().exec(command); + Log.d(TAG, String.format("Command:\n%s\nExit value:%d\n", command, proc.exitValue())); + proc.waitFor(); + return proc.exitValue(); } }