1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2025-02-20 20:09:11 +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):
super(AdobeReader, self).validate()
self.uiauto_params['filename'] = self.document_name.replace(' ', '0space0')
self.uiauto_params['search_string_list'] = '0newline0'.join([x.replace(' ', '0space0') for x in self.search_string_list])
self.uiauto_params['filename'] = self.document_name
self.uiauto_params['search_string_list'] = self.search_string_list
# Only accept certain file formats
if os.path.splitext(self.document_name.lower())[1] not in ['.pdf']:
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 {
parameters = getParams();
String filename = parameters.getString("filename").replace("0space0", " ");
String[] searchStrings =
parameters.getString("search_string_list").replace("0space0", " ").split("0newline0");
String filename = parameters.getString("filename");
String[] searchStrings = parameters.getStringArray("search_string_list");
setScreenOrientation(ScreenOrientation.NATURAL);
runApplicationInitialization();

View File

@ -41,7 +41,7 @@ public class UiAutomation extends BaseUiAutomation {
Bundle status = new Bundle();
Bundle params = getParams();
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());
waitForStartButton();

View File

@ -45,9 +45,9 @@ public class UiAutomation extends BaseUiAutomation {
Bundle parameters = getParams();
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) {
times = 1;
}

View File

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

View File

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

View File

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

View File

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

View File

@ -94,11 +94,11 @@ class Googleplaybooks(AndroidUxPerfWorkload):
def validate(self):
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 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.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['search_word'] = self.search_word
self.uiauto_params['account'] = self.account

View File

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

View File

@ -23,7 +23,7 @@ class GoogleSlides(AndroidUxPerfWorkload):
name = 'googleslides'
package = 'com.google.android.apps.docs.editors.slides'
activity = ''
view = [package + '/com.google.android.apps.docs.quickoffice.filepicker.FilePickerActivity',
package + '/com.google.android.apps.docs.editors.shared.filepicker.FilePickerActivity',
@ -118,10 +118,10 @@ class GoogleSlides(AndroidUxPerfWorkload):
def validate(self):
super(GoogleSlides, self).validate()
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['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
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))

View File

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

View File

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

View File

@ -90,7 +90,7 @@ class Skype(AndroidUxPerfWorkload):
super(Skype, self).validate()
self.uiauto_params['my_id'] = self.login_name
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['action'] = self.action

View File

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

View File

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

View File

@ -62,9 +62,9 @@ class Videostreaming(AndroidUiAutoBenchmark):
self.uiauto_params['tolerance'] = self.tolerance
self.uiauto_params['sampling_interval'] = self.sampling_interval
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:
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.uiauto_file = context.resolver.get(wlauto.common.android.resources.JarFile(self))
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)
return;
int tolerance = Integer.parseInt(parameters.getString("tolerance"));
int samplingInterval = Integer.parseInt(parameters
.getString("sampling_interval"));
String videoName = parameters.getString("video_name").replace("0space0", " "); //Hack to get around uiautomator limitation
int tolerance = parameters.getInt("tolerance");
int samplingInterval = parameters.getInt("sampling_interval");
String videoName = parameters.getString("video_name");
UiObject search = new UiObject(new UiSelector()
.className("android.widget.ImageButton").index(0));

View File

@ -86,7 +86,7 @@ class Youtube(AndroidUxPerfWorkload):
def validate(self):
super(Youtube, self).validate()
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'
if (self.video_source == 'search') and not self.search_term:
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 searchTerm = parameters.getString("search_term");
if (searchTerm != null) {
searchTerm = searchTerm.replace("0space0", " ");
}
setScreenOrientation(ScreenOrientation.NATURAL);
runApplicationInitialization();