iQuery是一個通用的跨平臺的控件查詢類庫,其語法相似jQuery,但你能夠在iOS、Android、selenium、甚至是桌面GUI程序上使用它。在iQuery以前,要在界面中查詢一個控件,特別是自動化測試用例程序中,是比較麻煩的事情,而iQuery不只能夠用一段簡潔的文本精準定位控件,還爲使用同一個查詢語句執行跨平臺控件查詢提供可能。css
繼上週發佈iQuery iOS版發佈以後,咱們再接再礪完成Android版的開發,你能夠在Android應用裏使用iQuery批量處理和操做界面控件,有興趣的朋友能夠在這裏下載:html
https://github.com/vowei/iQuery/downloadsjava
源碼位置:
https://github.com/vowei/iQuery android
要在Android程序以及Android自動化測試程序中使用iQuery,你須要引入下面幾個包:
antlr-runtime-3.4.jar:用於詞法解析。
iQA.Runtime.jar:iQuery語法解析主程序包。
iQA.Runtime.Instrument.jar:iQuery android插件。git
若是你須要編寫android instrument的UI自動化測試用例的話,還須要在測試用例工程裏添加:
robotium-solo-3.1.jar:用於抓取android UI控件的類庫。github
運行iQuery所須要的依賴包均可以在下面這個地方下載:
https://github.com/vowei/iQuery/tree/master/java/lib app
下面逐步介紹在eclipse的android自動化UI測試工程中使用iQuery的方法:
eclipse
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cc.iqa.studio.demo.test" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" /> <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="cc.iqa.studio.demo" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <uses-library android:name="android.test.runner" /> </application> </manifest>
import org.antlr.runtime.*; import cc.iqa.iquery.*; import cc.iqa.iquery.android.*;
import com.jayway.android.robotium.solo.*;
List<SoloTreeNode> result = iQuery.query( new SoloTreeNode(_solo.getCurrentViews().get(0)), "LinearLayout >> TextView [mText = 'Down Under']");
Assert.assertEquals(2, result.size());
public void test簡化後的API() throws Exception { List<SoloTreeNode> result = iQuery.query( new SoloTreeNode(_solo.getCurrentViews().get(0)), "LinearLayout >> TextView [mText = 'Down Under']"); Assert.assertEquals(2, r1.size()); }
e.getErrors();
測試用android工程:https://github.com/vowei/iQuery/tree/master/java/Test/multiplatformdemoproject 函數
相關測試用例:https://github.com/vowei/iQuery/tree/master/java/Test/iQA.Sample.multiplatformdemoprojecttest 測試
不管是iQuery iOS版仍是iQuery Android版本均可擴展的,後面將會介紹擴展iQuery的方法。