开源类库iQuery Android版使用说明
来源:互联网 发布:手机视频导入mac找不到 编辑:程序博客网 时间:2024/05/22 01:37
是一个通用的跨平台的控件查询类库,其语法类似jQuery,但你可以在iOS、Android、selenium、甚至是桌面GUI程序上使用它。在iQuery之前,要在界面中查询一个控件,特别是自动化测试用例程序中,是比较麻烦的事情,而iQuery不仅可以用一段简洁的文本精准定位控件,还为使用同一个查询语句执行跨平台控件查询提供可能。
要在Android程序以及Android自动化测试程序中使用iQuery,你需要引入下面几个包:
antlr-runtime-3.4.jar:用于词法解析。
iQA.Runtime.jar:iQuery语法解析主程序包。
iQA.Runtime.Instrument.jar:iQuery android插件。如果你需要编写android instrument的UI自动化测试用例的话,还需要在测试用例工程里添加:
robotium-solo-3.1.jar:用于抓取android UI控件的类库。#iQuery包下载地址https://github.com/vowei/iQuery/downloads
# robotium包下载:http://code.google.com/p/robotium/downloads/list下面逐步介绍在eclipse的android自动化UI测试工程中使用iQuery的方法:
首先创建一个android自动化测试工程,并在AndroidManifest.xml里指明要测试的Android程序的package名和应用的主Activity名。
<?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>将antlr和robotium的依赖包加入Build Path:
新建一个类(测试用例或者其它都可以),在源文件里加入以下几个命名空间:
import org.antlr.runtime.*;
import cc.iqa.iquery.*;
import cc.iqa.iquery.android.*;
上面,org.antlr.runtime用于引入词法解析的一些类(可选引用);cc.iqa.iquery用于引入iQuery for Java的主程序;而cc.iqa.iquery.android则用于引入iQuery android插件的相关类型。如果你是编写自动化的Instrument测试用例,可能还需要引入下面的命名空间:
import com.jayway.android.robotium.solo.*;
com.jayway.android.robotium.solo是用来引入基于Instrument的UI自动化的类库。使用iQuery.query静态函数从一个控件开始执行iQuery查询,iQuery的语法说明请参见文章类jQuery selector的控件查询iQuery开源类库介绍:
List<SoloTreeNode> result = iQuery.query(
new SoloTreeNode(_solo.getCurrentViews().get(0)),
"LinearLayout >> TextView [mText = 'Down Under']");parser.query返回的结果即是满足第5步中iQuery过滤条件的控件集合:
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());
}如果有语法错误的话,iQuery.query会抛出一个iQueryParseException异常,捕捉该异常,调用其getErrors函数获取语法错误的详细描述。e.getErrors();在eclipse里右键单击测试工程,选择Run As -> Android JUnit Test执行测试用例:
#参考:https://github.com/vowei/iQuery
https://github.com/vowei/iQuery/downloads
robotium包下载:http://code.google.com/p/robotium/downloads/list
1,设置ANDROID_HOME
export ANDROID_HOME=/media/E/android-sdk-linux/
2,进入iquery monkeyrunner plugin sample目录下
执行./run.sh
- 开源类库iQuery Android版使用说明
- iQuery插件使用说明
- MonkeyRunner_monkeyrunner的iQuery插件使用说明
- iQuery Android tutorial
- 类jQuery selector的控件查询iQuery开源类库介绍
- iQuery HelloWorld
- iquery -t -aq
- iQuery环境搭建
- iQuery中的Ajax应用
- android AVD工具使用说明
- Android的权限使用说明
- Android ContentResolver使用说明
- Android中的BaseAdapter使用说明
- android fontMetrics 使用说明
- Android Flurry使用说明
- Android上oprofile使用说明
- android-apktool 中文使用说明
- Android TableLayout中的使用说明
- 关于用存储过程中动态创建视图的一点心得。
- GUI_成长历程_part4
- 使用easyui的Tree 实现无限子节点绑定
- C++ 析构函数
- 获取局域网的主机名和ip
- 开源类库iQuery Android版使用说明
- Unix命令grep的来源
- GCC 用法
- 图像拼接
- [技术讨论]需求中的方法和小团队的开发过程——看看清华的呆头鹅在网络上都是如何的表情丰富
- http://www.slideshare.net/
- Android之实现手势缩放的ImageView
- ActivityGroup中出现的Unable to add window -- token android.app.LocalActivityManager$LocalActivityRecord@
- 一种高效压缩PNG图片的工具