From 366925c5c5f7f8225dffa7fc388f7cd60d710f53 Mon Sep 17 00:00:00 2001 From: muendelezaji Date: Wed, 4 May 2016 16:59:33 +0100 Subject: [PATCH] gfxinfo and SurfaceFlinger instrumentation Also added workload description --- wlauto/workloads/skypeecho/__init__.py | 51 +++-- .../arm/wlauto/uiauto/BaseUiAutomation.class | Bin 6482 -> 0 bytes .../com.arm.wlauto.uiauto.skypeecho.jar | Bin 9182 -> 9915 bytes .../com/arm/wlauto/uiauto/UiAutomation.java | 176 ++++++++++++------ 4 files changed, 154 insertions(+), 73 deletions(-) delete mode 100644 wlauto/workloads/skypeecho/bin/classes/com/arm/wlauto/uiauto/BaseUiAutomation.class diff --git a/wlauto/workloads/skypeecho/__init__.py b/wlauto/workloads/skypeecho/__init__.py index 37b77d0b..b77969f3 100644 --- a/wlauto/workloads/skypeecho/__init__.py +++ b/wlauto/workloads/skypeecho/__init__.py @@ -13,7 +13,7 @@ # limitations under the License. # -import os +import os.path as op import time from wlauto import AndroidUiAutoBenchmark, Parameter @@ -28,7 +28,19 @@ SKYPE_ACTION_URIS = { class SkypeEcho(AndroidUiAutoBenchmark): name = 'skypeecho' - description = 'Workload that makes a Skype test call' + description = ''' + Workload that makes Skype calls + + It allows for the agenda to decide whether to make a voice call or a video call. + Credentials for the user account used to log into the Skype app have to be provided + in the agenda, as well as the display name and skype ID of the contact to call. + + Other optional arguments allow controlling the duration of the call, whether the + call includes video or voice only, and whether to collect sys dumps. + + For reliable testing, this workload requires a good and stable internet connection, + preferably on Wi-Fi. + ''' package = 'com.skype.raider' activity = '' # Skype has no default 'main' activity @@ -37,9 +49,6 @@ class SkypeEcho(AndroidUiAutoBenchmark): instrumentation_log = '{}_instrumentation.log'.format(name) parameters = [ - # Workload parameters go here e.g. - # Parameter('example_parameter', kind=int, allowed_values=[1,2,3], default=1, override=True, mandatory=False, - # description='This is an example parameter') Parameter('login_name', kind=str, mandatory=True, description=''' Account to use when logging into the device from which the call will be made @@ -52,16 +61,27 @@ class SkypeEcho(AndroidUiAutoBenchmark): description='This is the contact display name as it appears in the people list'), Parameter('duration', kind=int, default=60, description='This is the duration of the call in seconds'), - Parameter('action', kind=str, allowed_values=['voice', 'video'], default='voice', - description='Action to take - either voice (default) or video call'), + Parameter('action', kind=str, allowed_values=['voice', 'video'], default='video', + description='Action to take - either video (default) or voice call'), Parameter('use_gui', kind=bool, default=True, description='Specifies whether to use GUI or direct Skype URI'), + Parameter('dumpsys_enabled', kind=bool, default=True, + description=''' + 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. + '''), ] def __init__(self, device, **kwargs): super(SkypeEcho, self).__init__(device, **kwargs) - self.output_file = os.path.join(self.device.working_directory, self.instrumentation_log) + self.output_file = op.join(self.device.working_directory, self.instrumentation_log) + self.run_timeout = self.duration + 60 + + def validate(self): + super(SkypeEcho, self).validate() self.uiauto_params['results_file'] = self.output_file + self.uiauto_params['dumpsys_enabled'] = self.dumpsys_enabled + self.uiauto_params['output_dir'] = self.device.working_directory if self.use_gui: self.uiauto_params['my_id'] = self.login_name self.uiauto_params['my_pwd'] = self.login_pass @@ -69,7 +89,6 @@ class SkypeEcho(AndroidUiAutoBenchmark): self.uiauto_params['name'] = self.contact_name.replace(' ', '_') self.uiauto_params['duration'] = self.duration self.uiauto_params['action'] = self.action - self.run_timeout = self.duration + 30 def setup(self, context): self.logger.info('===== setup() ======') @@ -96,11 +115,11 @@ class SkypeEcho(AndroidUiAutoBenchmark): def update_result(self, context): self.logger.info('===== update_result() ======') super(SkypeEcho, self).update_result(context) - # if not self.dumpsys_enabled: - # return + if not self.dumpsys_enabled: + return self.device.pull_file(self.output_file, context.output_directory) - results_file = os.path.join(context.output_directory, self.instrumentation_log) + results_file = op.join(context.output_directory, self.instrumentation_log) # process results and add them using # context.result.add_metric @@ -116,9 +135,9 @@ class SkypeEcho(AndroidUiAutoBenchmark): self.logger.info('===== teardown() ======') super(SkypeEcho, self).teardown(context) # Pull log files - for entry in self.device.listdir(self.device.working_directory): + wd = self.device.working_directory + for entry in self.device.listdir(wd): if entry.startswith(self.name) and entry.endswith(".log"): - self.device.pull_file(os.path.join(self.device.working_directory, entry), - context.output_directory) - self.device.delete_file(os.path.join(self.device.working_directory, entry)) + self.device.pull_file(op.join(wd, entry), context.output_directory) + self.device.delete_file(op.join(wd, entry)) # self.device.execute('am force-stop {}'.format(self.package)) diff --git a/wlauto/workloads/skypeecho/bin/classes/com/arm/wlauto/uiauto/BaseUiAutomation.class b/wlauto/workloads/skypeecho/bin/classes/com/arm/wlauto/uiauto/BaseUiAutomation.class deleted file mode 100644 index 3f507bb68625f4978761febd44e3f753b4bdc569..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6482 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 NsUt52?@3IG5I007F8qmd0L1Id!3kvNHe%95i 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 ClW_e2 diff --git a/wlauto/workloads/skypeecho/uiauto/src/com/arm/wlauto/uiauto/UiAutomation.java b/wlauto/workloads/skypeecho/uiauto/src/com/arm/wlauto/uiauto/UiAutomation.java index 1656c407..4d73ab1a 100644 --- a/wlauto/workloads/skypeecho/uiauto/src/com/arm/wlauto/uiauto/UiAutomation.java +++ b/wlauto/workloads/skypeecho/uiauto/src/com/arm/wlauto/uiauto/UiAutomation.java @@ -3,7 +3,7 @@ package com.arm.wlauto.uiauto.skypeecho; import java.io.File; import java.io.BufferedWriter; import java.io.FileWriter; -import java.util.HashMap; +import java.util.TreeMap; import java.util.Map; import java.util.Map.Entry; @@ -25,17 +25,47 @@ import com.arm.wlauto.uiauto.UxPerfUiAutomation; public class UiAutomation extends UxPerfUiAutomation { - public static String TAG = "uxperf_skypeecho"; + public static final String TAG = "skypeecho"; + public static final String PACKAGE = "com.skype.raider"; + public static final String PACKAGE_ID = "com.skype.raider:id/"; - public static String PACKAGE = "com.skype.raider"; - - public static String sendSmsButtonResourceId = "com.skype.raider:id/chat_menu_item_send_sms"; - public static String voiceCallButtonResourceId = "com.skype.raider:id/chat_menu_item_call_voice"; - public static String videoCallButtonResourceId = "com.skype.raider:id/chat_menu_item_call_video"; - public static String endCallButtonResourceId = "com.skype.raider:id/call_end_button"; + public static String sendSmsButtonResourceId = PACKAGE_ID + "chat_menu_item_send_sms"; + public static String voiceCallButtonResourceId = PACKAGE_ID + "chat_menu_item_call_voice"; + public static String videoCallButtonResourceId = PACKAGE_ID + "chat_menu_item_call_video"; + public static String endCallButtonResourceId = PACKAGE_ID + "call_end_button"; public static String noContactMessage = "Could not find contact \"%s\" in the contacts list."; - private Map results = new HashMap(); + private Map results = new TreeMap(); + private boolean dumpsysEnabled; + private String outputDir; + + private static Arguments args; + + private static final class Arguments { + String loginName; + String loginPass; + String contactSkypeid; + String contactName; + int callDuration; + String callType; + String resultsFile; + String outputDir; + boolean dumpsysEnabled; + } + + private static Arguments parseBundle(Bundle bundle) { + Arguments args = new Arguments(); + args.loginName = bundle.getString("my_id"); + args.loginPass = bundle.getString("my_pwd"); + args.contactSkypeid = bundle.getString("skypeid"); + args.contactName = bundle.getString("name").replace("_", " "); + args.callDuration = Integer.parseInt(bundle.getString("duration")); + args.callType = bundle.getString("action"); + args.resultsFile = bundle.getString("results_file"); + args.outputDir = bundle.getString("output_dir"); + args.dumpsysEnabled = bundle.getBoolean("dumpsys_enabled"); + return args; + } public void runUiAutomation() throws Exception { // Get Params @@ -45,22 +75,28 @@ public class UiAutomation extends UxPerfUiAutomation { String contactSkypeid = parameters.getString("skypeid"); String contactName = parameters.getString("name").replace("_", " "); int callDuration = Integer.parseInt(parameters.getString("duration")); - boolean isVideo = "video".equals(parameters.getString("action")); + String callType = parameters.getString("action"); String resultsFile = parameters.getString("results_file"); + outputDir = parameters.getString("output_dir", "/sdcard/wa-working"); + dumpsysEnabled = parameters.getBoolean("dumpsys_enabled", true); // Run tests Timer overallTimer = new Timer(); - Timer callTimer = new Timer(); overallTimer.start(); handleLoginScreen(loginName, loginPass); selectContact(contactName, contactSkypeid); - callTimer.start(); - makeCall(callDuration, isVideo); - callTimer.end(); + if ("video".equalsIgnoreCase(callType)) { + videoCallTest(callDuration); + } else if ("voice".equalsIgnoreCase(callType)) { + voiceCallTest(callDuration); + } else { + // both ? + // voiceCallTest(callDuration); + // videoCallTest(callDuration); + } overallTimer.end(); // Save results - results.put("call_test", callTimer); results.put("overall_test", overallTimer); saveResults(results, resultsFile); } @@ -79,13 +115,41 @@ public class UiAutomation extends UxPerfUiAutomation { out.close(); } - public void selectContact(String name, String id) throws Exception { - // UiObject peopleTab = new UiObject(selector.text("People")); - UiObject peopleTab = getUiObjectByDescription("People", "android.widget.TextView"); + private void handleLoginScreen(String username, String password) throws Exception { + String useridResoureId = PACKAGE_ID + "sign_in_userid"; + String nextButtonResourceId = PACKAGE_ID + "sign_in_next_btn"; + UiObject useridField = new UiObject(new UiSelector().resourceId(useridResoureId)); + UiObject nextButton = new UiObject(new UiSelector().resourceId(nextButtonResourceId)); + useridField.setText(username); + nextButton.clickAndWaitForNewWindow(); + + String skypenameResoureId = PACKAGE_ID + "signin_skypename"; + String passwordResoureId = PACKAGE_ID + "signin_password"; + String signinButtonResourceId = PACKAGE_ID + "sign_in_btn"; + // UiObject skypenameField = new UiObject(new UiSelector().resourceId(skypenameResoureId)); + UiObject passwordField = new UiObject(new UiSelector().resourceId(passwordResoureId)); + UiObject signinButton = new UiObject(new UiSelector().resourceId(signinButtonResourceId)); + // skypenameField.setText(username); + passwordField.setText(password); + signinButton.clickAndWaitForNewWindow(); + } + + private void selectContact(String name, String id) throws Exception { + Timer timer = new Timer(); + timer.start(); + UiObject peopleTab; + // Open the 'People' tab aka contacts view + // On phones, it is represented by an image with description + // On tablets, it the full text is shown without a description + try { + peopleTab = getUiObjectByDescription("People", "android.widget.TextView"); + } catch (UiObjectNotFoundException e) { + peopleTab = getUiObjectByText("People", "android.widget.TextView"); + } peopleTab.click(); - // On first startup, the app may take a while to load the display name, so try twice - // before declaring failure + // On first startup, the app may take a while to load the display name, + // so try twice before declaring failure UiObject contactCard; try { contactCard = getUiObjectByText(name, "android.widget.TextView"); @@ -94,52 +158,50 @@ public class UiAutomation extends UxPerfUiAutomation { // contactCard = getUiObjectByText(id, "android.widget.TextView"); } contactCard.clickAndWaitForNewWindow(); + timer.end(); + results.put("select_contact", timer); } - public void makeCall(int duration, boolean video) throws Exception { + private void voiceCallTest(int duration) throws Exception { + String testTag = "voice_call"; + Timer timer = new Timer(); + timer.start(); + makeCall(duration, false, testTag); + timer.end(); + results.put(testTag, timer); + } + + private void videoCallTest(int duration) throws Exception { + String testTag = "video_call"; + Timer timer = new Timer(); + timer.start(); + makeCall(duration, true, testTag); + timer.end(); + results.put(testTag, timer); + } + + private void makeCall(int duration, boolean video, String testTag) throws Exception { + String viewName = "com.skype.android.app.calling.CallActivity"; + String dumpsysTag = TAG + "_" + testTag; + int viewTimeout = 5000; + if (video && dumpsysEnabled) { + initDumpsysSurfaceFlinger(PACKAGE, viewName); + initDumpsysGfxInfo(PACKAGE); + } + // String resource = video ? videoCallButtonResourceId : voiceCallButtonResourceId; // UiObject callButton = new UiObject(new UiSelector().resourceId(resource)); String description = video ? "Video call" : "Call options"; UiObject callButton = new UiObject(new UiSelector().descriptionContains(description)); callButton.click(); + // callButton.clickAndWaitForNewWindow(); sleep(duration); // endCall(); + + if (video && dumpsysEnabled) { + exitDumpsysSurfaceFlinger(PACKAGE, viewName, new File(outputDir, dumpsysTag + "_surface_flinger.log")); + exitDumpsysGfxInfo(PACKAGE, new File(outputDir, dumpsysTag + "_gfxinfo.log")); + } } - /* - // TODO Needs to be run on UI thread after sleep - public void endCall() { - final UiObject endButton = getUiObjectByResourceId(endCallButtonResourceId, "android.widget.ImageView"); - final UiObject endButton = getUiObjectByResourceId(endCallButtonResourceId, "com.skype.android.widget.SymbolView"); - new Handler(Looper.getMainLooper()).postDelayed(new Runnable() { - @Override - public void run() { - try { - endButton.click(); - } catch (UiObjectNotFoundException e) { - // Do nothing - } - } - }, 10000); - } - */ - - public void handleLoginScreen(String username, String password) throws Exception { - String useridResoureId = "com.skype.raider:id/sign_in_userid"; - String nextButtonResourceId = "com.skype.raider:id/sign_in_next_btn"; - UiObject useridField = new UiObject(new UiSelector().resourceId(useridResoureId)); - UiObject nextButton = new UiObject(new UiSelector().resourceId(nextButtonResourceId)); - useridField.setText(username); - nextButton.clickAndWaitForNewWindow(); - - String skypenameResoureId = "com.skype.raider:id/signin_skypename"; - String passwordResoureId = "com.skype.raider:id/signin_password"; - String signinButtonResourceId = "com.skype.raider:id/sign_in_btn"; - // UiObject skypenameField = new UiObject(new UiSelector().resourceId(skypenameResoureId)); - UiObject passwordField = new UiObject(new UiSelector().resourceId(passwordResoureId)); - UiObject signinButton = new UiObject(new UiSelector().resourceId(signinButtonResourceId)); - // skypenameField.setText(username); - passwordField.setText(password); - signinButton.clickAndWaitForNewWindow(); - } }