Settings performance testing

1. Enable airplane mode before start testing.
2. Reset airplane mode after testing.
3. Add all_results tag to track results we have.
4. Add result_count tag to track how many results we have.
5. Add shell command result details to log.

Test: atest SettingsPerfTests:LaunchSettingsTest
Change-Id: I24ed167599b660b2aa94b4a3f8ddae1dcf3d04ff
This commit is contained in:
youtengliang
2020-05-19 11:58:28 +08:00
parent 9e974afd4c
commit bc1618f5d5

View File

@@ -79,6 +79,7 @@ public class LaunchSettingsTest {
private Instrumentation mInstrumentation; private Instrumentation mInstrumentation;
private Map<String, ArrayList<Integer>> mResult; private Map<String, ArrayList<Integer>> mResult;
private String mDefaultScreenTimeout; private String mDefaultScreenTimeout;
private String mDefaultAirplaneModeStatus;
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
@@ -88,7 +89,9 @@ public class LaunchSettingsTest {
mResult = new LinkedHashMap<>(); mResult = new LinkedHashMap<>();
mDefaultScreenTimeout = mDevice.executeShellCommand( mDefaultScreenTimeout = mDevice.executeShellCommand(
"settings get system screen_off_timeout"); "settings get system screen_off_timeout");
mDefaultAirplaneModeStatus = getAirplaneModeStatus();
setScreenTimeOut(SCREEN_TIME_OUT); setScreenTimeOut(SCREEN_TIME_OUT);
setAirplaneMode();
mDevice.pressHome(); mDevice.pressHome();
mDevice.waitForIdle(TIME_OUT); mDevice.waitForIdle(TIME_OUT);
@@ -102,6 +105,7 @@ public class LaunchSettingsTest {
putResultToBundle(); putResultToBundle();
mInstrumentation.sendStatus(0, mBundle); mInstrumentation.sendStatus(0, mBundle);
resetScreenTimeout(); resetScreenTimeout();
resetAirplaneMode();
closeApp(); closeApp();
} }
@@ -123,12 +127,12 @@ public class LaunchSettingsTest {
handleLaunchResult(title, mString); handleLaunchResult(title, mString);
} }
private void handleLaunchResult(String title, String s) { private void handleLaunchResult(String title, String shellCommandResult) {
Matcher mMatcher = PATTERN.matcher(s); Matcher mMatcher = PATTERN.matcher(shellCommandResult);
if (mMatcher.find()) { if (mMatcher.find()) {
mResult.get(title).add(Integer.valueOf(mMatcher.group().split("\\s")[1])); mResult.get(title).add(Integer.valueOf(mMatcher.group().split("\\s")[1]));
} else { } else {
fail("Some pages can't be found"); fail(String.format("Not found %s.\n %s", title, shellCommandResult));
} }
} }
@@ -145,6 +149,10 @@ public class LaunchSettingsTest {
getMin(mResult.get(string))); getMin(mResult.get(string)));
mBundle.putString(String.format("LaunchSettingsTest_%s_%s", string, "avg"), mBundle.putString(String.format("LaunchSettingsTest_%s_%s", string, "avg"),
getAvg(mResult.get(string))); getAvg(mResult.get(string)));
mBundle.putString(String.format("LaunchSettingsTest_%s_%s", string, "all_results"),
mResult.get(string).toString());
mBundle.putString(String.format("LaunchSettingsTest_%s_%s", string, "results_count"),
String.valueOf(mResult.get(string).size()));
} }
} }
@@ -171,4 +179,27 @@ public class LaunchSettingsTest {
} }
setScreenTimeOut(timeout); setScreenTimeOut(timeout);
} }
private void setAirplaneMode() throws Exception {
if (mDefaultAirplaneModeStatus.equals("0\n")) {
clickAirplaneMode();
}
}
private void resetAirplaneMode() throws Exception {
if (!getAirplaneModeStatus().equals(mDefaultAirplaneModeStatus)) {
clickAirplaneMode();
}
}
private void clickAirplaneMode() throws Exception {
mDevice.executeShellCommand("am start -W -a android.settings.AIRPLANE_MODE_SETTINGS");
mDevice.waitForIdle(TIME_OUT);
mDevice.findObject(By.textContains("Airplane")).click();
mDevice.waitForIdle(TIME_OUT);
}
private String getAirplaneModeStatus() throws Exception {
return mDevice.executeShellCommand("settings get global airplane_mode_on");
}
} }