From 091e1054abc3fe5bb074ef8245291bb4775ac073 Mon Sep 17 00:00:00 2001 From: James Hartley Date: Tue, 3 May 2016 18:14:59 +0100 Subject: [PATCH] Fix Gmail workload to run across more devices Changes to deal with subtle differences in layouts between tablets and handsets. Stop pushing files to he Camera directory for test purposes. --- wlauto/workloads/gmail/__init__.py | 12 ++- .../gmail/com.arm.wlauto.uiauto.gmail.jar | Bin 9184 -> 9695 bytes .../com/arm/wlauto/uiauto/UiAutomation.java | 94 ++++++++++++------ 3 files changed, 71 insertions(+), 35 deletions(-) diff --git a/wlauto/workloads/gmail/__init__.py b/wlauto/workloads/gmail/__init__.py index 748619b9..78a05abe 100755 --- a/wlauto/workloads/gmail/__init__.py +++ b/wlauto/workloads/gmail/__init__.py @@ -16,7 +16,7 @@ class Gmail(AndroidUiAutoBenchmark): description = """ A workload to perform standard productivity tasks within Gmail. - The workload carries out various tasks, such as creatign new emails and + The workload carries out various tasks, such as creating new emails and sending them, whilst also producing metrics for action completion times. """ @@ -45,13 +45,12 @@ class Gmail(AndroidUiAutoBenchmark): def setup(self, context): super(Gmail, self).setup(context) - self.camera_dir = self.device.path.join(self.device.external_storage_directory, - 'DCIM/Camera/') + self.storage_dir = self.device.path.join(self.device.working_directory) for file in os.listdir(self.dependencies_directory): if file.endswith(".jpg"): self.device.push_file(os.path.join(self.dependencies_directory, file), - os.path.join(self.camera_dir, file), timeout=300) + os.path.join(self.storage_dir, file), timeout=300) # 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') @@ -90,3 +89,8 @@ class Gmail(AndroidUiAutoBenchmark): if file.startswith (self.name) and file.endswith(".log"): self.device.pull_file(os.path.join(self.device.working_directory, file), context.output_directory) self.device.delete_file(os.path.join(self.device.working_directory, file)) + if file.startswith (self.name) and file.endswith(".jpg"): + self.device.delete_file(os.path.join(self.device.working_directory, 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') diff --git a/wlauto/workloads/gmail/com.arm.wlauto.uiauto.gmail.jar b/wlauto/workloads/gmail/com.arm.wlauto.uiauto.gmail.jar index 783a520536e81baba0c3ee4a12cd986452168590..48aabdb73701ffe66b83220b41de60b08f3524b0 100644 GIT binary patch delta 9436 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 diff --git a/wlauto/workloads/gmail/uiauto/src/com/arm/wlauto/uiauto/UiAutomation.java b/wlauto/workloads/gmail/uiauto/src/com/arm/wlauto/uiauto/UiAutomation.java index e3455c33..b2ab4dfe 100644 --- a/wlauto/workloads/gmail/uiauto/src/com/arm/wlauto/uiauto/UiAutomation.java +++ b/wlauto/workloads/gmail/uiauto/src/com/arm/wlauto/uiauto/UiAutomation.java @@ -31,21 +31,15 @@ public class UiAutomation extends UxPerfUiAutomation { public void runUiAutomation() throws Exception { parameters = getParams(); - Timer result = new Timer(); - result.start(); - clearFirstRunDialogues(); clickNewMail(); + attachFiles(); setToField(); setSubjectField(); setComposeField(); - attachFiles(); clickSendButton(); - result.end(); - timingResults.put("Total", result); - writeResultsToFile(timingResults, parameters.getString("output_file")); } @@ -53,9 +47,9 @@ public class UiAutomation extends UxPerfUiAutomation { // Enter search text into the file searchBox. This will automatically filter the list. UiObject gotItBox = getUiObjectByResourceId("com.google.android.gm:id/welcome_tour_got_it", "android.widget.TextView"); - gotItBox.clickAndWaitForNewWindow(); + clickUiObject(gotItBox, timeout); UiObject takeMeToBox = getUiObjectByText("Take me to Gmail", "android.widget.TextView"); - takeMeToBox.clickAndWaitForNewWindow(); + clickUiObject(takeMeToBox, timeout); UiObject converationView = new UiObject(new UiSelector() .resourceId("com.google.android.gm:id/conversation_list_view") .className("android.widget.ListView")); @@ -68,7 +62,7 @@ public class UiAutomation extends UxPerfUiAutomation { Timer result = new Timer(); UiObject newMailButton = getUiObjectByDescription("Compose", "android.widget.ImageButton"); result.start(); - newMailButton.clickAndWaitForNewWindow(timeout); + clickUiObject(newMailButton, timeout); result.end(); timingResults.put("newMail", result); } @@ -108,7 +102,7 @@ public class UiAutomation extends UxPerfUiAutomation { Timer result = new Timer(); UiObject sendButton = getUiObjectByDescription("Send", "android.widget.TextView"); result.start(); - sendButton.clickAndWaitForNewWindow(timeout); + clickUiObject(sendButton, timeout); result.end(); timingResults.put("Send", result); } @@ -120,28 +114,66 @@ public class UiAutomation extends UxPerfUiAutomation { String [] imageFiles = {"1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg"}; - result.start(); - for ( int i=0; i < imageFiles.length; i++) { - attachIcon.clickAndWaitForNewWindow(timeout); - UiObject attachFile = getUiObjectByText("Attach file", "android.widget.TextView"); - attachFile.clickAndWaitForNewWindow(timeout); - UiObject imagesEntry = getUiObjectByText("Images", "android.widget.TextView"); - imagesEntry.clickAndWaitForNewWindow(timeout); - UiObject listView = new UiObject(new UiSelector().textContains("List view") - .className("android.webkit.WebView")); - if (listView.exists()) { - listView.clickAndWaitForNewWindow(timeout); - } - UiObject cameraEntry = getUiObjectByText("Camera", "android.widget.TextView"); - cameraEntry.clickAndWaitForNewWindow(timeout); - UiObject oneJpg = getUiObjectByText(imageFiles[i], "android.widget.TextView"); - oneJpg.clickAndWaitForNewWindow(timeout); - } - result.end(); - timingResults.put("AttachFiles", result); - } + result.start(); + clickUiObject(attachIcon, timeout); + UiObject attachFile = getUiObjectByText("Attach file", "android.widget.TextView"); + clickUiObject(attachFile, timeout); + + UiObject titleIsWaWorking = new UiObject(new UiSelector() + .className("android.widget.TextView") + .textContains("wa-working")); + UiObject titleIsImages = new UiObject(new UiSelector() + .className("android.widget.TextView") + .textContains("Images")); + UiObject frameLayout = new UiObject(new UiSelector() + .className("android.widget.FrameLayout") + .resourceId("android:id/action_bar_container")); + UiObject rootMenu = new UiObject(new UiSelector() + .className("android.widget.ImageButton") + .descriptionContains("Show roots")); + UiObject imagesEntry = new UiObject(new UiSelector() + .className("android.widget.TextView") + .textContains("Images")); + UiObject waFolder = new UiObject(new UiSelector() + .className("android.widget.TextView") + .textContains("wa-working")); + + // Some devices use a FrameLayout as oppoised to a view Group so treat them differently + if (frameLayout.exists()) { + imagesEntry.click(); + waitObject(titleIsImages, 4); + waFolder.click(); + waitObject(titleIsWaWorking, 4); + } else { + // Portrait devices will roll the menu up so click the root menu icon + if (!titleIsWaWorking.exists()) { + if (rootMenu.exists()) { + rootMenu.click(); + } + imagesEntry.click(); + waitObject(titleIsImages, 4); + waFolder.click(); + waitObject(titleIsWaWorking, 4); + } + } + + UiObject imageFileButton = new UiObject(new UiSelector() + .resourceId("com.android.documentsui:id/grid") + .className("android.widget.GridView") + .childSelector(new UiSelector() + .index(i).className("android.widget.FrameLayout"))); + + clickUiObject(imageFileButton, timeout); + + result.end(); + + // Replace whitespace and full stops within the filename + String file = imageFiles[i].replaceAll("\\.", "_").replaceAll("\\s+", "_"); + timingResults.put(String.format("AttachFiles" + "_" + file), result); + } + } private void writeResultsToFile(LinkedHashMap timingResults, String file) throws Exception { // Write out the key/value pairs to the instrumentation log file