1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2025-02-21 20:38:57 +00:00

UiAutomatorWorkloads: Updated to use the new parameter passing functionality.

Each workload has be modfied to remove the old manual paremeter conversion
and instead to retrieve the desired type from the parameter bundle directly.
This commit is contained in:
Marc Bonnici 2017-02-09 16:49:12 +00:00
parent d10e51e30b
commit 8f1206678a
35 changed files with 43 additions and 51 deletions

View File

@ -76,8 +76,8 @@ class AdobeReader(AndroidUxPerfWorkload):
def validate(self): def validate(self):
super(AdobeReader, self).validate() super(AdobeReader, self).validate()
self.uiauto_params['filename'] = self.document_name.replace(' ', '0space0') self.uiauto_params['filename'] = self.document_name
self.uiauto_params['search_string_list'] = '0newline0'.join([x.replace(' ', '0space0') for x in self.search_string_list]) self.uiauto_params['search_string_list'] = self.search_string_list
# Only accept certain file formats # Only accept certain file formats
if os.path.splitext(self.document_name.lower())[1] not in ['.pdf']: if os.path.splitext(self.document_name.lower())[1] not in ['.pdf']:
raise ValidationError('{} must be a PDF file'.format(self.document_name)) raise ValidationError('{} must be a PDF file'.format(self.document_name))

View File

@ -45,9 +45,8 @@ public class UiAutomation extends UxPerfUiAutomation implements ApplaunchInterfa
public void runUiAutomation() throws Exception { public void runUiAutomation() throws Exception {
parameters = getParams(); parameters = getParams();
String filename = parameters.getString("filename").replace("0space0", " "); String filename = parameters.getString("filename");
String[] searchStrings = String[] searchStrings = parameters.getStringArray("search_string_list");
parameters.getString("search_string_list").replace("0space0", " ").split("0newline0");
setScreenOrientation(ScreenOrientation.NATURAL); setScreenOrientation(ScreenOrientation.NATURAL);
runApplicationInitialization(); runApplicationInitialization();

View File

@ -41,7 +41,7 @@ public class UiAutomation extends BaseUiAutomation {
Bundle status = new Bundle(); Bundle status = new Bundle();
Bundle params = getParams(); Bundle params = getParams();
String numThreads = params.getString("number_of_threads"); String numThreads = params.getString("number_of_threads");
Boolean nativeOnly = Boolean.parseBoolean(params.getString("native_only")); Boolean nativeOnly = params.getBoolean("native_only");
status.putString("product", getUiDevice().getProductName()); status.putString("product", getUiDevice().getProductName());
waitForStartButton(); waitForStartButton();

View File

@ -45,9 +45,9 @@ public class UiAutomation extends BaseUiAutomation {
Bundle parameters = getParams(); Bundle parameters = getParams();
String version = parameters.getString("version"); String version = parameters.getString("version");
boolean enableSdTests = Boolean.parseBoolean(parameters.getString("enable_sd_tests")); boolean enableSdTests = parameters.getBoolean("enable_sd_tests");
int times = Integer.parseInt(parameters.getString("times")); int times = parameters.getInt("times");
if (times < 1) { if (times < 1) {
times = 1; times = 1;
} }

View File

@ -51,7 +51,7 @@ public class UiAutomation extends UxPerfUiAutomation {
/** Timeout to wait for application launch to finish. */ /** Timeout to wait for application launch to finish. */
private Integer launch_timeout = 10; private Integer launch_timeout = 10;
public String applaunchType; public String applaunchType;
public String applaunchIterations; public int applaunchIterations;
public String activityName; public String activityName;
public ApplaunchInterface launch_workload; public ApplaunchInterface launch_workload;
@ -90,15 +90,15 @@ public class UiAutomation extends UxPerfUiAutomation {
// Get parameters for application launch // Get parameters for application launch
getPackageParameters(); getPackageParameters();
applaunchType = parameters.getString("applaunch_type"); applaunchType = parameters.getString("applaunch_type");
applaunchIterations = parameters.getString("applaunch_iterations"); applaunchIterations = parameters.getInt("applaunch_iterations");
activityName = parameters.getString("launch_activity"); activityName = parameters.getString("launch_activity");
// Run the workload for application launch initialization // Run the workload for application launch initialization
runApplaunchSetup(); runApplaunchSetup();
// Run the workload for application launch measurement // Run the workload for application launch measurement
for (int iteration = 0; iteration < Integer.parseInt(applaunchIterations); iteration++) { for (int iteration = 0; iteration < applaunchIterations; iteration++) {
Log.d("Applaunch iteration number: ", applaunchIterations); Log.d("Applaunch iteration number: ", String.valueOf(applaunchIterations));
sleep(20);//sleep for a while before next iteration sleep(20);//sleep for a while before next iteration
killBackground(); killBackground();
runApplaunchIteration(iteration); runApplaunchIteration(iteration);

View File

@ -43,11 +43,9 @@ public class UiAutomation extends BaseUiAutomation {
public void runUiAutomation() throws Exception { public void runUiAutomation() throws Exception {
Bundle parameters = getParams(); Bundle parameters = getParams();
if (parameters.size() > 0) { if (parameters.size() > 0) {
iterations = Integer.parseInt(parameters iterations = parameters.getInt("no_of_captures");
.getString("no_of_captures")); timeDurationBetweenEachCapture = parameters.getInt("time_between_captures");
timeDurationBetweenEachCapture = Integer.parseInt(parameters api = parameters.getInt("api_level");
.getString("time_between_captures"));
api = Integer.parseInt(parameters.getString("api_level"));
String versionString = parameters.getString("version"); String versionString = parameters.getString("version");
version = splitVersion(versionString); version = splitVersion(versionString);
} }

View File

@ -45,10 +45,9 @@ public class UiAutomation extends BaseUiAutomation {
public void runUiAutomation() throws Exception { public void runUiAutomation() throws Exception {
Bundle parameters = getParams(); Bundle parameters = getParams();
if (parameters.size() > 0) { if (parameters.size() > 0) {
recordingTime = Integer.parseInt(parameters recordingTime = parameters.getInt("recording_time");
.getString("recording_time"));
recordingMode = parameters.getString("recording_mode"); recordingMode = parameters.getString("recording_mode");
api = Integer.parseInt(parameters.getString("api_level")); api = parameters.getInt("api_level");
String versionString = parameters.getString("version"); String versionString = parameters.getString("version");
version = splitVersion(versionString); version = splitVersion(versionString);
} }

View File

@ -43,8 +43,8 @@ public class UiAutomation extends BaseUiAutomation {
String version = parameters.getString("version"); String version = parameters.getString("version");
String useCase = parameters.getString("use_case").replace('_', ' '); String useCase = parameters.getString("use_case").replace('_', ' ');
String variant = parameters.getString("variant").replace('_', ' '); String variant = parameters.getString("variant").replace('_', ' ');
int iterations = Integer.parseInt(parameters.getString("iterations")); int iterations = parameters.getInt("iterations");
int testTimeoutSeconds = Integer.parseInt(parameters.getString("timeout")); int testTimeoutSeconds = parameters.getInt("timeout");
if (iterations < 1) if (iterations < 1)
iterations = 1; iterations = 1;

View File

@ -94,11 +94,11 @@ class Googleplaybooks(AndroidUxPerfWorkload):
def validate(self): def validate(self):
super(Googleplaybooks, self).validate() super(Googleplaybooks, self).validate()
self.uiauto_params['search_book_title'] = self.search_book_title.replace(' ', '0space0') self.uiauto_params['search_book_title'] = self.search_book_title
# If library_book_title is blank, set it to the same as search_book_title # If library_book_title is blank, set it to the same as search_book_title
if not self.library_book_title: # pylint: disable=access-member-before-definition if not self.library_book_title: # pylint: disable=access-member-before-definition
self.library_book_title = self.search_book_title # pylint: disable=attribute-defined-outside-init self.library_book_title = self.search_book_title # pylint: disable=attribute-defined-outside-init
self.uiauto_params['library_book_title'] = self.library_book_title.replace(' ', '0space0') self.uiauto_params['library_book_title'] = self.library_book_title
self.uiauto_params['chapter_page_number'] = self.select_chapter_page_number self.uiauto_params['chapter_page_number'] = self.select_chapter_page_number
self.uiauto_params['search_word'] = self.search_word self.uiauto_params['search_word'] = self.search_word
self.uiauto_params['account'] = self.account self.uiauto_params['account'] = self.account

View File

@ -51,8 +51,8 @@ public class UiAutomation extends UxPerfUiAutomation implements ApplaunchInterfa
parameters = getParams(); parameters = getParams();
String searchBookTitle = parameters.getString("search_book_title").replace("0space0", " "); String searchBookTitle = parameters.getString("search_book_title");
String libraryBookTitle = parameters.getString("library_book_title").replace("0space0", " "); String libraryBookTitle = parameters.getString("library_book_title");
String chapterPageNumber = parameters.getString("chapter_page_number"); String chapterPageNumber = parameters.getString("chapter_page_number");
String searchWord = parameters.getString("search_word"); String searchWord = parameters.getString("search_word");
String noteText = "This is a test note"; String noteText = "This is a test note";

View File

@ -23,7 +23,7 @@ class GoogleSlides(AndroidUxPerfWorkload):
name = 'googleslides' name = 'googleslides'
package = 'com.google.android.apps.docs.editors.slides' package = 'com.google.android.apps.docs.editors.slides'
activity = '' activity = ''
view = [package + '/com.google.android.apps.docs.quickoffice.filepicker.FilePickerActivity', view = [package + '/com.google.android.apps.docs.quickoffice.filepicker.FilePickerActivity',
package + '/com.google.android.apps.docs.editors.shared.filepicker.FilePickerActivity', package + '/com.google.android.apps.docs.editors.shared.filepicker.FilePickerActivity',
@ -118,10 +118,10 @@ class GoogleSlides(AndroidUxPerfWorkload):
def validate(self): def validate(self):
super(GoogleSlides, self).validate() super(GoogleSlides, self).validate()
self.uiauto_params['workdir_name'] = self.device.path.basename(self.device.working_directory) self.uiauto_params['workdir_name'] = self.device.path.basename(self.device.working_directory)
self.uiauto_params['test_file'] = self.test_file.replace(' ', '0space0') self.uiauto_params['test_file'] = self.test_file
self.uiauto_params['slide_count'] = self.slide_count self.uiauto_params['slide_count'] = self.slide_count
self.uiauto_params['do_text_entry'] = self.do_text_entry self.uiauto_params['do_text_entry'] = self.do_text_entry
self.uiauto_params['new_doc_name'] = self.new_doc_name.replace(' ', '0space0') self.uiauto_params['new_doc_name'] = self.new_doc_name
# Only accept certain image formats # Only accept certain image formats
if os.path.splitext(self.test_image.lower())[1] not in ['.jpg', '.jpeg', '.png']: if os.path.splitext(self.test_image.lower())[1] not in ['.jpg', '.jpeg', '.png']:
raise ValidationError('{} must be a JPEG or PNG file'.format(self.test_image)) raise ValidationError('{} must be a JPEG or PNG file'.format(self.test_image))

View File

@ -51,10 +51,10 @@ public class UiAutomation extends UxPerfUiAutomation {
packageName = parameters.getString("package"); packageName = parameters.getString("package");
packageID = packageName + ":id/"; packageID = packageName + ":id/";
String newDocumentName = parameters.getString("new_doc_name").replace("0space0", " "); String newDocumentName = parameters.getString("new_doc_name");
String pushedDocumentName = parameters.getString("test_file").replace("0space0", " "); String pushedDocumentName = parameters.getString("test_file");
int slideCount = Integer.parseInt(parameters.getString("slide_count")); int slideCount = parameters.getInt("slide_count");
boolean doTextEntry = Boolean.parseBoolean(parameters.getString("do_text_entry")); boolean doTextEntry = parameters.getBoolean("do_text_entry");
String workingDirectoryName = parameters.getString("workdir_name"); String workingDirectoryName = parameters.getString("workdir_name");
setScreenOrientation(ScreenOrientation.NATURAL); setScreenOrientation(ScreenOrientation.NATURAL);

View File

@ -38,7 +38,7 @@ public class UiAutomation extends BaseUiAutomation {
public void runUiAutomation() throws Exception { public void runUiAutomation() throws Exception {
Bundle status = new Bundle(); Bundle status = new Bundle();
Bundle params = getParams(); Bundle params = getParams();
boolean hasGpu = Boolean.parseBoolean(params.getString("has_gpu").toLowerCase()); boolean hasGpu = params.getBoolean("has_gpu");
clearLogcat(); clearLogcat();
handleFtuInfoDialogIfNecessary(); handleFtuInfoDialogIfNecessary();

View File

@ -90,7 +90,7 @@ class Skype(AndroidUxPerfWorkload):
super(Skype, self).validate() super(Skype, self).validate()
self.uiauto_params['my_id'] = self.login_name self.uiauto_params['my_id'] = self.login_name
self.uiauto_params['my_pwd'] = self.login_pass self.uiauto_params['my_pwd'] = self.login_pass
self.uiauto_params['name'] = self.contact_name.replace(' ', '0space0') self.uiauto_params['name'] = self.contact_name
self.uiauto_params['duration'] = self.duration self.uiauto_params['duration'] = self.duration
self.uiauto_params['action'] = self.action self.uiauto_params['action'] = self.action

View File

@ -45,8 +45,8 @@ public class UiAutomation extends UxPerfUiAutomation implements ApplaunchInterfa
parameters = getParams(); parameters = getParams();
String contactName = parameters.getString("name").replace("0space0", " "); String contactName = parameters.getString("name");
int callDuration = Integer.parseInt(parameters.getString("duration")); int callDuration = parameters.getInt("duration");
String callType = parameters.getString("action"); String callType = parameters.getString("action");
String resultsFile = parameters.getString("results_file"); String resultsFile = parameters.getString("results_file");

View File

@ -43,10 +43,10 @@ public class UiAutomation extends BaseUiAutomation {
public void runUiAutomation() throws Exception { public void runUiAutomation() throws Exception {
Bundle parameters = getParams(); Bundle parameters = getParams();
String version = parameters.getString("version"); String version = parameters.getString("version");
Boolean browser = Boolean.parseBoolean(parameters.getString("browser")); Boolean browser = parameters.getBoolean("browser");
Boolean metal = Boolean.parseBoolean(parameters.getString("metal")); Boolean metal = parameters.getBoolean("metal");
Boolean multicore = Boolean.parseBoolean(parameters.getString("multicore")); Boolean multicore = parameters.getBoolean("multicore");
Integer browserToUse = Integer.parseInt(parameters.getString("browserToUse")) - 1; Integer browserToUse = parameters.getInt("browserToUse") - 1;
dismissEULA(); dismissEULA();

View File

@ -62,9 +62,9 @@ class Videostreaming(AndroidUiAutoBenchmark):
self.uiauto_params['tolerance'] = self.tolerance self.uiauto_params['tolerance'] = self.tolerance
self.uiauto_params['sampling_interval'] = self.sampling_interval self.uiauto_params['sampling_interval'] = self.sampling_interval
if self.video_name and self.video_name != "": if self.video_name and self.video_name != "":
self.uiauto_params['video_name'] = self.video_name.replace(" ", "0space0") # hack to get around uiautomator limitation self.uiauto_params['video_name'] = self.video_name
else: else:
self.uiauto_params['video_name'] = "abkk sathe {}".format(self.resolution).replace(" ", "0space0") self.uiauto_params['video_name'] = "abkk sathe {}".format(self.resolution)
self.apk_file = context.resolver.get(wlauto.common.android.resources.ApkFile(self)) self.apk_file = context.resolver.get(wlauto.common.android.resources.ApkFile(self))
self.uiauto_file = context.resolver.get(wlauto.common.android.resources.JarFile(self)) self.uiauto_file = context.resolver.get(wlauto.common.android.resources.JarFile(self))
self.device_uiauto_file = self.device.path.join(self.device.working_directory, self.device_uiauto_file = self.device.path.join(self.device.working_directory,

View File

@ -60,10 +60,9 @@ public class UiAutomation extends BaseUiAutomation {
if (parameters.size() <= 0) if (parameters.size() <= 0)
return; return;
int tolerance = Integer.parseInt(parameters.getString("tolerance")); int tolerance = parameters.getInt("tolerance");
int samplingInterval = Integer.parseInt(parameters int samplingInterval = parameters.getInt("sampling_interval");
.getString("sampling_interval")); String videoName = parameters.getString("video_name");
String videoName = parameters.getString("video_name").replace("0space0", " "); //Hack to get around uiautomator limitation
UiObject search = new UiObject(new UiSelector() UiObject search = new UiObject(new UiSelector()
.className("android.widget.ImageButton").index(0)); .className("android.widget.ImageButton").index(0));

View File

@ -86,7 +86,7 @@ class Youtube(AndroidUxPerfWorkload):
def validate(self): def validate(self):
super(Youtube, self).validate() super(Youtube, self).validate()
self.uiauto_params['video_source'] = self.video_source self.uiauto_params['video_source'] = self.video_source
self.uiauto_params['search_term'] = self.search_term.replace(' ', '0space0') self.uiauto_params['search_term'] = self.search_term
# Make sure search term is set if video source is 'search' # Make sure search term is set if video source is 'search'
if (self.video_source == 'search') and not self.search_term: if (self.video_source == 'search') and not self.search_term:
raise WorkloadError("Param 'search_term' must be specified when video source is 'search'") raise WorkloadError("Param 'search_term' must be specified when video source is 'search'")

View File

@ -46,9 +46,6 @@ public class UiAutomation extends UxPerfUiAutomation implements ApplaunchInterfa
String videoSource = parameters.getString("video_source"); String videoSource = parameters.getString("video_source");
String searchTerm = parameters.getString("search_term"); String searchTerm = parameters.getString("search_term");
if (searchTerm != null) {
searchTerm = searchTerm.replace("0space0", " ");
}
setScreenOrientation(ScreenOrientation.NATURAL); setScreenOrientation(ScreenOrientation.NATURAL);
runApplicationInitialization(); runApplicationInitialization();