From 27b08bade0227cd81ea2fea473e09bd2a2b7782a Mon Sep 17 00:00:00 2001 From: Marc Bonnici Date: Fri, 9 Dec 2016 17:12:03 +0000 Subject: [PATCH] PeacekeeperWorkload: Updated to work with new APK versions Updated peacekeeper UI automation to work with newer version of chrome and firefox. --- wlauto/workloads/peacekeeper/__init__.py | 4 ++ .../com.arm.wlauto.uiauto.peacekeeper.jar | Bin 3479 -> 8343 bytes .../com/arm/wlauto/uiauto/UiAutomation.java | 49 +++++++++++++++--- 3 files changed, 46 insertions(+), 7 deletions(-) diff --git a/wlauto/workloads/peacekeeper/__init__.py b/wlauto/workloads/peacekeeper/__init__.py index ad23e09e..54ca2fff 100644 --- a/wlauto/workloads/peacekeeper/__init__.py +++ b/wlauto/workloads/peacekeeper/__init__.py @@ -81,6 +81,10 @@ class Peacekeeper(AndroidUiAutoBenchmark): if not url: raise WorkloadError('The url is empty, error while running peacekeeper benchmark') + # urlopen expects url beginning with protocol. + if not url.startswith('http'): + url = 'http://' + url + req = urllib2.Request(url) response = urllib2.urlopen(req) result_page = response.read() diff --git a/wlauto/workloads/peacekeeper/com.arm.wlauto.uiauto.peacekeeper.jar b/wlauto/workloads/peacekeeper/com.arm.wlauto.uiauto.peacekeeper.jar index 4dbd946560d8d37a91b14a7a0f42d4e55756a122..d84aa4725bd15d5abc846cf80a52182c6219a28c 100644 GIT binary patch delta 8224 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 delta 3337 zcmZvfWl$6hx5rnyb1CU&7ipG|5|CP?mS!oJ5~M>G0hey1yQI5YBoLbkmqw-ol)Q+{>Cd)yhLtCG)$Arpg*hw}q#NlSgOhec^=eqTE)(@F%`>8ji>l z{rF3&42^}Fa!Ml}s&WpC;!G8e={VRZ;XI74+Nj)Rfuvo94qSd0xVz$oY%{}N<#$i{ zOvzqMmfGtK6J|D+^}sJYSXym@u^)yTug|${%2);auaY!83{2%^XVi>1OZF86XL(R4 zNEx~=vkf_M^7T;2E_^M3E3s@r3A;g0^tL~JoG(J;Oc}M zj!39|oB$zx=)EQe7Cg2t(jcZ)(n(a@MVo)Hvl! zG=LE&4{hy9l@LzSMZJp4hDRAbjHX0OY{;IFo;Pre8PU5e%#{_fAlrSylz=InHiZ$nBV}PC<^CySoj8! z46$yg99m&R@kHoE07;XN>k-n4ULPRjSWuS4i`x>6gyq=M@1B5QzNH}-F&x)Sr3b(Mf_Ng2+P*)1)F~% z)Y<-(cUG>0jpHkrGCr0|IMptH1v%S>iR^_=Icf!(KnpNU(1W10u`2xLEK zjnSk}^HM?AZg5v(B=a;Tx%FA@H38EblAJewDwA){Rca)`_6fg{UFsPG=spQWoHX>Q5H1bwHmebVBl@dlRpy9%9ehssv&xZ)fd(?iw<;q8 zdO?)#Tz!;s<*2Y=x|FLhIF3RLl6{Y?!LCISe3%s?ZGg(E+x5f9;mY#y&|+6#+txvA ztmEi~mKdUL~=?n1FsR zXhO{Bo3o{xF>Sj0@t+WkOmt&py9n`vp|!zxfsscyk6nnzAdg#{aS`M;yb9@a76J@9 zgB|iO_nYHTUc{q^#M4_7wGgXSfqcYz{yYV-2Go@LWQi>X}gcqPcAzx?E zdx7i~bKy|>_CJh`YaV`Wq^_N75|76)~Ry_iETucRuB=Wj0N9U^9~*{DW8JSP_lAu#9_bk~fiwS9(2eX3?? zI!)%>w;T~Moz_^)ogWdbe5WB7CLerMV@obnh9Iv`y#AQRdK0wS?Gf85sKs!4KAaeI z1cad8F|hxt6i5*v7&lQhTLEqsby^ zV8En=`Nwav^_ri`$SwKGoVz`nYb|&?B9~1N_%IUqqtJPr z+ZECZ!&A$ibpP5bKS-rfN7OTe;yvB%LplhCY{#=VXy&}`COf#@Z(R6QW|SNyYjfN! z75S@i|>TamFnHh(nG@pr&)Bj76=0rFJ) z6$dW~+N3iQk?z!>0I$u4+%1gZ;)mX54veh)V+lo*jt0l9$e#=lC4=*NP+?X{-44c~ zEY`3tpm6*0${^u*@uniOj=h^ox^#;1;=x#z>~FEL+FXY%sw5gP5{qKoTGr0f=wvV{ z$&hn!t-FFu<%;)eL2Z^@Z(~UaPDaaKH+*@VG9!eM{?5W&9vQTg8rq$>RdF;FBxZ?L zu#^lYQ#xYq#y4J_8&;S8O%B8GyB=cc#lF{s%B!Hhr!5dPE0ldlN3FHe*%}_Be|%gw zxi#hJNJr(u&Y!{N`}4zY6W9CPS_dYMZSOm(K$xy-bxg@9mRQF7}F%Ht)XEh`U9LH0Uu zwYUUKA>@ayA!ABNr4}t)IgiPFTb4l7A@!U@r6{RUPWe1e@2k@oDPhrW^k zNOJRIRQ1TK4Z(d6O+u7B#t)19;^$oElcY^P&} zis#D+=>rT zl^H(^MMpk5uM|Hh^a`#hcoTMiZOgf{IY{7^E z=^_$^%ss>|E%^F*SaVNWLV>%(_bZ^CN9ZrNgkEws=+?bB1J@rphQ+&cWW8%p5!*Wy zbj+!KXIJKDVn*0;<4sQOEqP|Y-p2W(py+y~&YvF5Hw9(43V$D2-=~`DN4ryT<3xo= zY~gHDVcxfelQ8s!^lh(}SXjW7w54$e!|`T|0!oj+I{xC?$QJj``o>0I`yLJu_kURA zFChFkhyi$jv_p1&^8W)TY3v*j)&CDH{=F*;?fl#RFU-)_#wYk^iTgJ@{^}UnKhu8z Do8wHb diff --git a/wlauto/workloads/peacekeeper/uiauto/src/com/arm/wlauto/uiauto/UiAutomation.java b/wlauto/workloads/peacekeeper/uiauto/src/com/arm/wlauto/uiauto/UiAutomation.java index 2384b800..228f7fe3 100644 --- a/wlauto/workloads/peacekeeper/uiauto/src/com/arm/wlauto/uiauto/UiAutomation.java +++ b/wlauto/workloads/peacekeeper/uiauto/src/com/arm/wlauto/uiauto/UiAutomation.java @@ -65,6 +65,10 @@ public class UiAutomation extends BaseUiAutomation { UiObject addressBar = new UiObject(new UiSelector() .className("android.widget.TextView") .text("Enter Search or Address")); + if (!addressBar.exists()) { + addressBar = new UiObject(new UiSelector() + .resourceIdMatches(".*/url_bar_title")); + } addressBar.click(); UiObject setUrl = new UiObject(new UiSelector() .className("android.widget.EditText")); @@ -72,6 +76,13 @@ public class UiAutomation extends BaseUiAutomation { setUrl.setText(peacekeeperUrl); getUiDevice().pressEnter(); + // Allow time for UI to update + sleep(1); + + if (!setUrl.exists()){ + setUrl = addressBar; + } + UiObject currentUrl = new UiObject(new UiSelector() .className("android.widget.TextView").index(1)); for (int i = 0; i < TIMEOUT; i++) { @@ -88,19 +99,43 @@ public class UiAutomation extends BaseUiAutomation { sleep(10); } } else if (browser.equals("chrome")) { // Code for Chrome browser - UiObject adressBar = new UiObject(new UiSelector() - .className("android.widget.EditText") - .description("Search or type url")); - adressBar.clearTextField(); - adressBar.setText(peacekeeperUrl); + //Check for welcome screen and dismiss if present. + UiObject acceptTerms = new UiObject(new UiSelector() + .className("android.widget.Button") + .textContains("Accept & continue")); + if (acceptTerms.exists()){ + acceptTerms.click(); + UiObject dismiss = new UiObject(new UiSelector() + .className("android.widget.Button") + .resourceIdMatches(".*/negative_button")); + if (dismiss.exists()){ + dismiss.clickAndWaitForNewWindow(); + } + } + + UiObject addressBar = new UiObject(new UiSelector() + .className("android.widget.EditText") + .descriptionContains("Search or type url")); + + addressBar.clickAndWaitForNewWindow(); + addressBar.clearTextField(); + addressBar.setText(peacekeeperUrl); getUiDevice().pressEnter(); + + // Allow time for UI to update + sleep(1); + + if (!addressBar.exists()){ + addressBar = new UiObject(new UiSelector() + .resourceIdMatches(".*/url_bar")); + } for (int i = 0; i < TIMEOUT; i++) { - if (!adressBar.getText().contains("run.action")) { + if (!addressBar.getText().contains("run.action")) { // write url address to peacekeeper.txt file - urlAddress = adressBar.getText(); + urlAddress = addressBar.getText(); if (!urlAddress.contains("http")) urlAddress = "http://" + urlAddress; writer.println(urlAddress);