mirror of
https://github.com/ARM-software/workload-automation.git
synced 2025-04-15 23:30:47 +01:00
Adds Warm start time measurement
1- Launch enabled from WA for first app launch 2- Warm start requires stopping the first launched app, added in Applaunch class 3- markers moved in google photos and adobereader for launch call. 4- Backup popup watcher added in gmail 5- Tested for all workloads on s7
This commit is contained in:
parent
b323d98e51
commit
1092ef07fd
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -630,9 +630,6 @@ class AndroidUxPerfWorkload(AndroidUiAutoBenchmark):
|
|||||||
super(AndroidUxPerfWorkload, self).__init__(device, **kwargs)
|
super(AndroidUxPerfWorkload, self).__init__(device, **kwargs)
|
||||||
# Turn class attribute into instance attribute
|
# Turn class attribute into instance attribute
|
||||||
self.deployable_assets = list(self.deployable_assets)
|
self.deployable_assets = list(self.deployable_assets)
|
||||||
# Turn off app launch from wa if markers are enabled for uxperf
|
|
||||||
if self.markers_enabled:
|
|
||||||
self.launch_main = False
|
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
super(AndroidUxPerfWorkload, self).validate()
|
super(AndroidUxPerfWorkload, self).validate()
|
||||||
|
@ -144,6 +144,9 @@ public class BaseUiAutomation extends UiAutomatorTestCase {
|
|||||||
//Launches the application.
|
//Launches the application.
|
||||||
public void launch_main() throws Exception{
|
public void launch_main() throws Exception{
|
||||||
Process launch_p;
|
Process launch_p;
|
||||||
|
Process stop_app;
|
||||||
|
stop_app = Runtime.getRuntime().exec(String.format("am force-stop %s",
|
||||||
|
packageName));
|
||||||
logger.start();
|
logger.start();
|
||||||
if(activityName.equals("None")) {
|
if(activityName.equals("None")) {
|
||||||
launch_p = Runtime.getRuntime().exec(String.format("am start -W %s",
|
launch_p = Runtime.getRuntime().exec(String.format("am start -W %s",
|
||||||
@ -157,16 +160,24 @@ public class BaseUiAutomation extends UiAutomatorTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
launch_validate(launch_p);
|
launch_validate(launch_p);
|
||||||
|
stop_app.destroy();
|
||||||
launch_p.destroy();
|
launch_p.destroy();
|
||||||
}
|
}
|
||||||
//Launches the Skype application
|
//Launches the Skype application
|
||||||
public void launch_main(String actionName, String dataURI) throws Exception{
|
public void launch_main(String actionName, String dataURI) throws Exception{
|
||||||
Process launch_p;
|
Process launch_p;
|
||||||
|
Process stop_app;
|
||||||
|
sleep(2);
|
||||||
|
stop_app = Runtime.getRuntime().exec(String.format("am force-stop %s",
|
||||||
|
packageName));
|
||||||
logger.start();
|
logger.start();
|
||||||
|
stop_app.waitFor();
|
||||||
launch_p = Runtime.getRuntime().exec(String.format("am start -W -a %s -d %s",
|
launch_p = Runtime.getRuntime().exec(String.format("am start -W -a %s -d %s",
|
||||||
actionName, dataURI));
|
actionName, dataURI));
|
||||||
|
|
||||||
|
launch_p.waitFor();
|
||||||
launch_validate(launch_p);
|
launch_validate(launch_p);
|
||||||
|
stop_app.destroy();
|
||||||
launch_p.destroy();
|
launch_p.destroy();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
@ -62,11 +62,11 @@ public class UiAutomation extends UxPerfUiAutomation {
|
|||||||
UiObject userBeginObject =
|
UiObject userBeginObject =
|
||||||
new UiObject(new UiSelector().textContains("RECENT")
|
new UiObject(new UiSelector().textContains("RECENT")
|
||||||
.className("android.widget.TextView"));
|
.className("android.widget.TextView"));
|
||||||
|
setScreenOrientation(ScreenOrientation.NATURAL);
|
||||||
|
dismissWelcomeView();
|
||||||
if(applaunch_enabled) {
|
if(applaunch_enabled) {
|
||||||
applaunch.launch_main();//launch the application
|
applaunch.launch_main();//launch the application
|
||||||
}
|
}
|
||||||
setScreenOrientation(ScreenOrientation.NATURAL);
|
|
||||||
dismissWelcomeView();
|
|
||||||
if(applaunch_enabled) {
|
if(applaunch_enabled) {
|
||||||
applaunch.launch_end(userBeginObject,5);//mark the end of launch
|
applaunch.launch_end(userBeginObject,5);//mark the end of launch
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
@ -23,6 +23,7 @@ import com.android.uiautomator.core.UiObject;
|
|||||||
import com.android.uiautomator.core.UiObjectNotFoundException;
|
import com.android.uiautomator.core.UiObjectNotFoundException;
|
||||||
import com.android.uiautomator.core.UiSelector;
|
import com.android.uiautomator.core.UiSelector;
|
||||||
import com.android.uiautomator.core.UiScrollable;
|
import com.android.uiautomator.core.UiScrollable;
|
||||||
|
import com.android.uiautomator.core.UiWatcher;
|
||||||
|
|
||||||
import com.arm.wlauto.uiauto.UxPerfUiAutomation;
|
import com.arm.wlauto.uiauto.UxPerfUiAutomation;
|
||||||
|
|
||||||
@ -59,15 +60,20 @@ public class UiAutomation extends UxPerfUiAutomation {
|
|||||||
UiObject userBeginObject =
|
UiObject userBeginObject =
|
||||||
new UiObject(new UiSelector().textContains("Photos")
|
new UiObject(new UiSelector().textContains("Photos")
|
||||||
.className("android.widget.TextView"));
|
.className("android.widget.TextView"));
|
||||||
if(applaunch_enabled) {
|
//Watcher that takes care of backup popup during warm start
|
||||||
applaunch.launch_main();//launch the application
|
UiWatcher backupPopUpWatcher = createBackupPopUpWatcher();
|
||||||
}
|
registerWatcher("backupPopUpWatcher", backupPopUpWatcher);
|
||||||
|
runWatchers();
|
||||||
|
|
||||||
|
|
||||||
setScreenOrientation(ScreenOrientation.NATURAL);
|
setScreenOrientation(ScreenOrientation.NATURAL);
|
||||||
dismissWelcomeView();
|
dismissWelcomeView();
|
||||||
closePromotionPopUp();
|
closePromotionPopUp();
|
||||||
|
|
||||||
|
if(applaunch_enabled) {
|
||||||
|
applaunch.launch_main();//launch the application
|
||||||
|
}
|
||||||
|
|
||||||
if(applaunch_enabled) {
|
if(applaunch_enabled) {
|
||||||
applaunch.launch_end(userBeginObject,5);//mark the end of launch
|
applaunch.launch_end(userBeginObject,5);//mark the end of launch
|
||||||
}
|
}
|
||||||
@ -453,4 +459,26 @@ public class UiAutomation extends UxPerfUiAutomation {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Creates a watcher for when a pop up dialog appears with a signin/close button.
|
||||||
|
private UiWatcher createBackupPopUpWatcher() throws Exception {
|
||||||
|
UiWatcher backupPopUpWatcher = new UiWatcher() {
|
||||||
|
@Override
|
||||||
|
public boolean checkForCondition() {
|
||||||
|
UiObject closeButton =
|
||||||
|
new UiObject(new UiSelector().resourceId(packageID + "promo_close_button"));
|
||||||
|
|
||||||
|
if (closeButton.exists()) {
|
||||||
|
try {
|
||||||
|
closeButton.click();
|
||||||
|
} catch (UiObjectNotFoundException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
return closeButton.waitUntilGone(TimeUnit.SECONDS.toMillis(10));
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
return backupPopUpWatcher;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
@ -71,9 +71,6 @@ public class UiAutomation extends UxPerfUiAutomation {
|
|||||||
//Widget on the screen that marks the application ready for user interaction
|
//Widget on the screen that marks the application ready for user interaction
|
||||||
UiObject userBeginObject =
|
UiObject userBeginObject =
|
||||||
new UiObject(new UiSelector().resourceId(packageID + "menu_search"));
|
new UiObject(new UiSelector().resourceId(packageID + "menu_search"));
|
||||||
if(applaunch_enabled) {
|
|
||||||
applaunch.launch_main();//launch the application
|
|
||||||
}
|
|
||||||
|
|
||||||
setScreenOrientation(ScreenOrientation.NATURAL);
|
setScreenOrientation(ScreenOrientation.NATURAL);
|
||||||
|
|
||||||
@ -82,6 +79,9 @@ public class UiAutomation extends UxPerfUiAutomation {
|
|||||||
dismissSendBooksAsGiftsDialog();
|
dismissSendBooksAsGiftsDialog();
|
||||||
dismissSync();
|
dismissSync();
|
||||||
|
|
||||||
|
if(applaunch_enabled) {
|
||||||
|
applaunch.launch_main();//launch the application
|
||||||
|
}
|
||||||
if(applaunch_enabled) {
|
if(applaunch_enabled) {
|
||||||
applaunch.launch_end(userBeginObject,5);//mark the end of launch
|
applaunch.launch_end(userBeginObject,5);//mark the end of launch
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
@ -66,9 +66,6 @@ public class UiAutomation extends UxPerfUiAutomation {
|
|||||||
//Widget on the screen that marks the application ready for user interaction
|
//Widget on the screen that marks the application ready for user interaction
|
||||||
UiObject userBeginObject =
|
UiObject userBeginObject =
|
||||||
new UiObject(new UiSelector().resourceId(packageID + "menu_search"));
|
new UiObject(new UiSelector().resourceId(packageID + "menu_search"));
|
||||||
if(applaunch_enabled) {
|
|
||||||
applaunch.launch_main(actionName,dataURI);//launch the application
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
setScreenOrientation(ScreenOrientation.NATURAL);
|
setScreenOrientation(ScreenOrientation.NATURAL);
|
||||||
@ -80,6 +77,9 @@ public class UiAutomation extends UxPerfUiAutomation {
|
|||||||
// Run tests
|
// Run tests
|
||||||
handleLoginScreen(loginName, loginPass);
|
handleLoginScreen(loginName, loginPass);
|
||||||
dismissUpdatePopupIfPresent();
|
dismissUpdatePopupIfPresent();
|
||||||
|
if(applaunch_enabled) {
|
||||||
|
applaunch.launch_main(actionName,dataURI);//launch the application
|
||||||
|
}
|
||||||
if(applaunch_enabled) {
|
if(applaunch_enabled) {
|
||||||
applaunch.launch_end(userBeginObject,5);//mark the end of launch
|
applaunch.launch_end(userBeginObject,5);//mark the end of launch
|
||||||
}
|
}
|
||||||
@ -184,6 +184,29 @@ public class UiAutomation extends UxPerfUiAutomation {
|
|||||||
return infoPopUpWatcher;
|
return infoPopUpWatcher;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Creates a watcher for when a pop up dialog appears with a continue button.
|
||||||
|
private UiWatcher createUpdatePopUpWatcher() throws Exception {
|
||||||
|
UiWatcher updatePopUpWatcher = new UiWatcher() {
|
||||||
|
@Override
|
||||||
|
public boolean checkForCondition() {
|
||||||
|
UiObject continueButton =
|
||||||
|
new UiObject(new UiSelector().resourceId(packageID + "button2"));
|
||||||
|
|
||||||
|
if (continueButton.exists()) {
|
||||||
|
try {
|
||||||
|
continueButton.click();
|
||||||
|
} catch (UiObjectNotFoundException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
return continueButton.waitUntilGone(TimeUnit.SECONDS.toMillis(10));
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
return updatePopUpWatcher;
|
||||||
|
}
|
||||||
|
|
||||||
private void voiceCallTest(int duration) throws Exception {
|
private void voiceCallTest(int duration) throws Exception {
|
||||||
String testTag = "call_voice";
|
String testTag = "call_voice";
|
||||||
ActionLogger logger = new ActionLogger(testTag, parameters);
|
ActionLogger logger = new ActionLogger(testTag, parameters);
|
||||||
|
Binary file not shown.
@ -65,13 +65,13 @@ public class UiAutomation extends UxPerfUiAutomation {
|
|||||||
UiObject userBeginObject =
|
UiObject userBeginObject =
|
||||||
new UiObject(new UiSelector().textContains("Home")
|
new UiObject(new UiSelector().textContains("Home")
|
||||||
.className("android.widget.TextView"));
|
.className("android.widget.TextView"));
|
||||||
if(applaunch_enabled) {
|
|
||||||
applaunch.launch_main();//launch the application
|
|
||||||
}
|
|
||||||
setScreenOrientation(ScreenOrientation.NATURAL);
|
setScreenOrientation(ScreenOrientation.NATURAL);
|
||||||
|
|
||||||
clearFirstRunDialogues();
|
clearFirstRunDialogues();
|
||||||
disableAutoplay();
|
disableAutoplay();
|
||||||
|
if(applaunch_enabled) {
|
||||||
|
applaunch.launch_main();//launch the application
|
||||||
|
}
|
||||||
if(applaunch_enabled) {
|
if(applaunch_enabled) {
|
||||||
applaunch.launch_end(userBeginObject,5);//mark the end of launch
|
applaunch.launch_end(userBeginObject,5);//mark the end of launch
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user