- 浏览: 923673 次
- 性别:
- 来自: 上海
最新评论
-
liu149339750:
我勒个去,搜到你的博客了,关注!
Android make脚本简记 -
ihopethatwell:
楼主,这个修改时间有个问题,退出修改界面就不保存设置的时间了, ...
Android中如何修改系统时间(应用程序获得系统权限) -
flyar520:
你好...我也遇到屏幕半屏刷成黑屏的问题...但是我的时在开机 ...
Android横屏状态下返回到壁纸界面屏幕刷新问题 -
flyar520:
你好...我也遇到屏幕半屏刷成黑屏的问题...但是我的时在开机 ...
Android横屏状态下返回到壁纸界面屏幕刷新问题 -
taowayi:
推荐android一键反编译神器 apkdec
Android apk反编译
一、一个BUG引发的问题
如果研发过程中有一个BUG:“不断的切换手机语言出现花屏现象”。这个问题我们如何验证呢?我想,最好的方式应该是自动化测试。
那么,自动化测试可以完成哪些任务呢?
简单的说,那些重复性的测试工作,都可以交给自动化完成:
1、设置手机的语言
2、添加、删除、收藏联系人
3、拨号、挂断
4、甚至发送短信、收藏短信
如果需要上面的功能,那么就开始自动化之旅吧。
二、Android自动化测试简单介绍
Android自动化测试主要分为Monkeyrunner、Rubotium、UiAutomator、Monkey(在我看来这个不算)等。主要特点:
1、Monkeyrunner:优点:操作最为简单,可以录制测试脚本,可视化操作;缺点:主要生成坐标的自动化操作,移植性不强,功能最为局限;
2、Rubotium:主要针对某一个APK进行自动化测试,APK可以有源码,也可以没有源码,功能强大;缺点是针对APK操作,而且需要对APK重新签名(有工具),因此操作相对复杂;
3、UiAutomator:优点:可以对所有操作进行自动化,操作简单;缺点:Android版本需要高于4.0,无法根据控件ID操作,相对来说功能较为局限,但也够用了;
4、Monkey:准确来说,这不算是自动化测试,因为其只能产生随机的事件,无法按照既定的步骤操作;
由上面介绍可以有这样的结论:测试某个APK,可以选择Rubotium;测试过程可能涉及多个APK,选择UiAutomator;一些简单的测试,选择Monkeyrunner;
本文主要介绍UiAutomator的使用方法。
三、环境搭建
3.1、必备条件:
1、JDK
2、SDK(API高于15)
3、Eclipse(安装ADT插件)
4、ANT(用于编译生成jar)
3.2、简要步骤:
1、安装JDK并添加环境变量。
安装后,一定要通过JAVA_HOME的方式添加环境变量,即先建立JAVA_HOME变量,然后在path中添加%JAVA_HOME%\bin;
2、添加SDK环境变量。
一定要先建立ANDROID_HOME,然后把%ANDROID_HOME%\tools添加到path中;
3、安装Eclipse,并安装ADT插件。
4、安装ANT工具,并添加环境变量。
同样一定要先建立%ANT_HOME%变量,然后在path中添加%ANT_HOME%\bin
四、详细操作
4.1、建立工程
用Eclipse新建Java Project,注意,不是Android Project!
4.2、添加JUnit库
4.3、添加Android库
找到路径Android-sdk\platforms\android-17\下面的android.jar和uiautomator.jar添加进来:
所有库添加完应该是这个样子:
4.4、在src中添加包,然后添加class文件
文件内容为:
[java] view plaincopy
package com;
import com.android.uiautomator.core.UiObject;
import com.android.uiautomator.core.UiObjectNotFoundException;
import com.android.uiautomator.core.UiScrollable;
import com.android.uiautomator.core.UiSelector;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;
public class Runner extends UiAutomatorTestCase {
public void testDemo() throws UiObjectNotFoundException {
getUiDevice().pressHome();
// 进入设置菜单
UiObject settingApp = new UiObject(new UiSelector().text("Settings"));
settingApp.click();
//休眠3秒
try {
Thread.sleep(3000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
// 进入语言和输入法设置
UiScrollable settingItems = new UiScrollable( new UiSelector().scrollable(true));
UiObject languageAndInputItem = settingItems.getChildByText(
new UiSelector().text("Language & input"), "Language & input", true);
languageAndInputItem.clickAndWaitForNewWindow();
}
}
上面工程路径在e:\workspace\AutoRunner,类全名为com.Runner,至于具体的作用我们现在不去关心。
4.5、找到SDK ID
CMD进入\Android-sdk\tools\目录下,运行命令:
android list
查看API大于15的SDK的ID值,当前是6;
4.6、创建build文件
仍然在\Android-sdk\tools\目录下,运行命令:
android create uitest-project -n <name> -t <android-sdk-ID> -p <path>
比如:
android create uitest-project -n AutoRunner -t 6 -p e:\workspace\AutoRunner
上面的name就是将来生成的jar包的名字,可以自己定义,android-sdk-ID就是上面看到的6;path是Eclipse新建的工程的路径;运行命令后,将会在工程的根目录下生成build.xml文件。如果没生成,检查上面的步骤。
4.7、编译生成jar
CMD进入项目的工程目录,然后运行ant build,将使用ant编译生成jar,成功将会提示:
然后会在bin目录下生成jar文件。
4.8、push并运行jar
adb push <jar文件路径> data/local/tmp
adb shell uiautomator runtest <jar文件名> -c <工程中的类名,包含包名>
比如:
adb push e:\workspace\AutoRunner\bin\AutoRunner.jar data/local/tmp
adb shell uiautomator runtest AutoRunner.jar -c com.Runner
然后就能看到手机会按照Runner中的步骤自动执行。具体效果就是,进入设置菜单,然后再进入“语言和输入法”菜单
五、代码分析
我们从几个最重要的对象来介绍。
5.1、UiDevice对象
getUiDevice()的方法可以得到一个UiDevice的对象,通过这个对象可以完成一些针对设备的动作:
click(int x, int y)
----在(x,y)表示的像素地方点击
pressBack()
pressDelete()
pressEnter()
pressHome()
pressMenu()
pressSearch()
----点击相应的按键
wakeUp()
----当手机处于灭屏状态时,唤醒屏幕,并解锁。
swipe(startX, startY, endX, endY, steps)
----在手机上滑动,从(startX,startY)到(endX,endY)。steps表示滑动的这个距离分为几步完成,数目越少,滑动幅度越大。
setOrientationLeft()
setOrientationRight()
----将手机向相应方向旋转。
setOrientationNatural()
----将手机旋转状态回归正常。
5.2、UiSelector对象
这个对象可以理解为一种条件对象,描述的是一种条件,经常配合UiObject使用,可以得到某个(某些)符合条件的控件对象。
checked(boolean val)
----描述一种check状态为val的关系。
className(className)
----描述一种类名为className的对象关系
clickable(boolean val)
----与checked类似,描述clickable状态为val的关系
description(desc)
----不解释
descriptionContains(desc)
----与description类似
focusable(boolean val)
----与checked类似
index(index)
----用当前对象在父对象集中的索引作为描述
packageName(String name)
----用包名作为条件描述
selected(val)
----描述一种选择关系
text(text)
----最为常用的一种关系,用控件上的文本即可找到当前控件,需要注意,所有使用text属性找到的控件,必须是英文的。也就是说,不支持通过中文查找控件!
textContains(text)
----与text类似
textStartsWith(text)
----与text类似
5.3、UiObject对象
这个对象可以理解为控件的对象。 一般一个UiObject对象可以通过一下形式得到:
UiObject mItem = new UiObject(new UiSelector().text("English"));
也就是配合一个UiSelector就可以得到一个控件。
click()
----点击控件
clickAndWaitForNewWindow()
----点击某个控件,并等待窗口刷新
longClick()
----长按
clearTextField()
----清除文本,主要针对编辑框
getChildCount()
----这个方法可以看出,其实UiObject也可以是一个控件的集合
getPackageName()
----得到控件的包名
getSelector()
----得到当前控件的选择条件
getText()
----得到控件上的Text
isCheckable()
isChecked()
isClickable()
isLongClickable()
isScrollable()
isScrollable()
isSelected()
----判断是否具备某个属性
5.4、UiCollection对象
这个对象可以理解为一个对象的集合。因为UiSelector描述后得到的有可能是多个满足条件的控件集合,因此可以用来生成UiCollection:
UiCollection mUiCollection = new UiCollection(new UiSelector().text("Settings"));
getChild(selector)
----从集合中再次通过UiSelector选择一个UiObject对象
getChildByDescription(childPattern, text)
----从一个匹配模式中再次以text为条件选择UiObject
getChildByText(childPattern, text)
----与上面类似。
getChildCount()
----得到当前集合中控件的个数
5.5、UiScrollable对象
UiScrollable可以生成一个滚动动作的对象,其最大的作用就是可以实现滚动的查找某个元素。比如在“设置”菜单中,“语言和输入法”这个菜单比较靠下,需要滚动后才可以看到(找到),因此就用上了UiScrollable:
[java] view plaincopy
UiScrollable settingItems = new UiScrollable( new UiSelector().scrollable(true));
UiObject languageAndInputItem = settingItems.getChildByText(
new UiSelector().text("Language & input"), "Language & input",
true);
上面的形式就可以在滚动中查找显示有“Language & input”的控件,也就是“语言和输入法”的设置项。
5.6、等待操作和添加Log的方法
如果是对于一个标准的UiObject对象,可以通过clickAndWaitForNewWindow的方法在点击之后主动等待一段事件,但是如果需要额外的等待一段时间,特别对于getUiDevice().pressHome();这种操作,可能需要很长的事件去为下一步操作获取更多的事件,此时我们可以使用线程的sleep方法去实现:
[java] view plaincopy
//等待3秒
try {
Thread.sleep(3000);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
而添加Log的方法也可以通过Java标准的println来实现:
System.out.println("This used to print some log!!!" + setLanItem.getText());
以上Log将会在jar被运行时通过CMD窗口打印出来。
六、一个相对完整的测试case
下面就用一个相对连贯的测试用例来串一下上面的知识点,这个case用例要做的就是进入系统设置菜单,然后选择“语言和输入法”菜单,然后进入“语言设置”菜单,然后在第一项上点击,把当前语言设置为“简体中文”:
[java] view plaincopy
public void setChineseLan() throws UiObjectNotFoundException {
//进入操作前,先用Home键进入待机界面
getUiDevice().pressHome();
//进入“系统设置”菜单。也可以通过点击menu按键来实现
UiObject settingApp = new UiObject(new UiSelector().text("Settings"));
settingApp.click();
//等待3秒
try {
Thread.sleep(3000);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
//用滚动的方式查找并进入“语言和输入法设置”菜单
UiScrollable settingItems = new UiScrollable(
new UiSelector().scrollable(true));
UiObject languageAndInputItem = settingItems.getChildByText(
new UiSelector().text("Language & input"), "Language & input",
true);
languageAndInputItem.clickAndWaitForNewWindow();
//找到“English”的可点击项(因为当前是英文环境)
UiObject setLanItem = new UiObject(new UiSelector().text("English"));
setLanItem.clickAndWaitForNewWindow();
//Log输出
System.out.println("setLanItem-->" + setLanItem.getPackageName());
//由于无法识别中文,因此我们这里使用坐标去选择“简体中文”项
getUiDevice().click(350, 250);
//点击返回键,回到待机界面
getUiDevice().pressBack();
getUiDevice().pressBack();
getUiDevice().pressBack();
如果研发过程中有一个BUG:“不断的切换手机语言出现花屏现象”。这个问题我们如何验证呢?我想,最好的方式应该是自动化测试。
那么,自动化测试可以完成哪些任务呢?
简单的说,那些重复性的测试工作,都可以交给自动化完成:
1、设置手机的语言
2、添加、删除、收藏联系人
3、拨号、挂断
4、甚至发送短信、收藏短信
如果需要上面的功能,那么就开始自动化之旅吧。
二、Android自动化测试简单介绍
Android自动化测试主要分为Monkeyrunner、Rubotium、UiAutomator、Monkey(在我看来这个不算)等。主要特点:
1、Monkeyrunner:优点:操作最为简单,可以录制测试脚本,可视化操作;缺点:主要生成坐标的自动化操作,移植性不强,功能最为局限;
2、Rubotium:主要针对某一个APK进行自动化测试,APK可以有源码,也可以没有源码,功能强大;缺点是针对APK操作,而且需要对APK重新签名(有工具),因此操作相对复杂;
3、UiAutomator:优点:可以对所有操作进行自动化,操作简单;缺点:Android版本需要高于4.0,无法根据控件ID操作,相对来说功能较为局限,但也够用了;
4、Monkey:准确来说,这不算是自动化测试,因为其只能产生随机的事件,无法按照既定的步骤操作;
由上面介绍可以有这样的结论:测试某个APK,可以选择Rubotium;测试过程可能涉及多个APK,选择UiAutomator;一些简单的测试,选择Monkeyrunner;
本文主要介绍UiAutomator的使用方法。
三、环境搭建
3.1、必备条件:
1、JDK
2、SDK(API高于15)
3、Eclipse(安装ADT插件)
4、ANT(用于编译生成jar)
3.2、简要步骤:
1、安装JDK并添加环境变量。
安装后,一定要通过JAVA_HOME的方式添加环境变量,即先建立JAVA_HOME变量,然后在path中添加%JAVA_HOME%\bin;
2、添加SDK环境变量。
一定要先建立ANDROID_HOME,然后把%ANDROID_HOME%\tools添加到path中;
3、安装Eclipse,并安装ADT插件。
4、安装ANT工具,并添加环境变量。
同样一定要先建立%ANT_HOME%变量,然后在path中添加%ANT_HOME%\bin
四、详细操作
4.1、建立工程
用Eclipse新建Java Project,注意,不是Android Project!
4.2、添加JUnit库
4.3、添加Android库
找到路径Android-sdk\platforms\android-17\下面的android.jar和uiautomator.jar添加进来:
所有库添加完应该是这个样子:
4.4、在src中添加包,然后添加class文件
文件内容为:
[java] view plaincopy
package com;
import com.android.uiautomator.core.UiObject;
import com.android.uiautomator.core.UiObjectNotFoundException;
import com.android.uiautomator.core.UiScrollable;
import com.android.uiautomator.core.UiSelector;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;
public class Runner extends UiAutomatorTestCase {
public void testDemo() throws UiObjectNotFoundException {
getUiDevice().pressHome();
// 进入设置菜单
UiObject settingApp = new UiObject(new UiSelector().text("Settings"));
settingApp.click();
//休眠3秒
try {
Thread.sleep(3000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
// 进入语言和输入法设置
UiScrollable settingItems = new UiScrollable( new UiSelector().scrollable(true));
UiObject languageAndInputItem = settingItems.getChildByText(
new UiSelector().text("Language & input"), "Language & input", true);
languageAndInputItem.clickAndWaitForNewWindow();
}
}
上面工程路径在e:\workspace\AutoRunner,类全名为com.Runner,至于具体的作用我们现在不去关心。
4.5、找到SDK ID
CMD进入\Android-sdk\tools\目录下,运行命令:
android list
查看API大于15的SDK的ID值,当前是6;
4.6、创建build文件
仍然在\Android-sdk\tools\目录下,运行命令:
android create uitest-project -n <name> -t <android-sdk-ID> -p <path>
比如:
android create uitest-project -n AutoRunner -t 6 -p e:\workspace\AutoRunner
上面的name就是将来生成的jar包的名字,可以自己定义,android-sdk-ID就是上面看到的6;path是Eclipse新建的工程的路径;运行命令后,将会在工程的根目录下生成build.xml文件。如果没生成,检查上面的步骤。
4.7、编译生成jar
CMD进入项目的工程目录,然后运行ant build,将使用ant编译生成jar,成功将会提示:
然后会在bin目录下生成jar文件。
4.8、push并运行jar
adb push <jar文件路径> data/local/tmp
adb shell uiautomator runtest <jar文件名> -c <工程中的类名,包含包名>
比如:
adb push e:\workspace\AutoRunner\bin\AutoRunner.jar data/local/tmp
adb shell uiautomator runtest AutoRunner.jar -c com.Runner
然后就能看到手机会按照Runner中的步骤自动执行。具体效果就是,进入设置菜单,然后再进入“语言和输入法”菜单
五、代码分析
我们从几个最重要的对象来介绍。
5.1、UiDevice对象
getUiDevice()的方法可以得到一个UiDevice的对象,通过这个对象可以完成一些针对设备的动作:
click(int x, int y)
----在(x,y)表示的像素地方点击
pressBack()
pressDelete()
pressEnter()
pressHome()
pressMenu()
pressSearch()
----点击相应的按键
wakeUp()
----当手机处于灭屏状态时,唤醒屏幕,并解锁。
swipe(startX, startY, endX, endY, steps)
----在手机上滑动,从(startX,startY)到(endX,endY)。steps表示滑动的这个距离分为几步完成,数目越少,滑动幅度越大。
setOrientationLeft()
setOrientationRight()
----将手机向相应方向旋转。
setOrientationNatural()
----将手机旋转状态回归正常。
5.2、UiSelector对象
这个对象可以理解为一种条件对象,描述的是一种条件,经常配合UiObject使用,可以得到某个(某些)符合条件的控件对象。
checked(boolean val)
----描述一种check状态为val的关系。
className(className)
----描述一种类名为className的对象关系
clickable(boolean val)
----与checked类似,描述clickable状态为val的关系
description(desc)
----不解释
descriptionContains(desc)
----与description类似
focusable(boolean val)
----与checked类似
index(index)
----用当前对象在父对象集中的索引作为描述
packageName(String name)
----用包名作为条件描述
selected(val)
----描述一种选择关系
text(text)
----最为常用的一种关系,用控件上的文本即可找到当前控件,需要注意,所有使用text属性找到的控件,必须是英文的。也就是说,不支持通过中文查找控件!
textContains(text)
----与text类似
textStartsWith(text)
----与text类似
5.3、UiObject对象
这个对象可以理解为控件的对象。 一般一个UiObject对象可以通过一下形式得到:
UiObject mItem = new UiObject(new UiSelector().text("English"));
也就是配合一个UiSelector就可以得到一个控件。
click()
----点击控件
clickAndWaitForNewWindow()
----点击某个控件,并等待窗口刷新
longClick()
----长按
clearTextField()
----清除文本,主要针对编辑框
getChildCount()
----这个方法可以看出,其实UiObject也可以是一个控件的集合
getPackageName()
----得到控件的包名
getSelector()
----得到当前控件的选择条件
getText()
----得到控件上的Text
isCheckable()
isChecked()
isClickable()
isLongClickable()
isScrollable()
isScrollable()
isSelected()
----判断是否具备某个属性
5.4、UiCollection对象
这个对象可以理解为一个对象的集合。因为UiSelector描述后得到的有可能是多个满足条件的控件集合,因此可以用来生成UiCollection:
UiCollection mUiCollection = new UiCollection(new UiSelector().text("Settings"));
getChild(selector)
----从集合中再次通过UiSelector选择一个UiObject对象
getChildByDescription(childPattern, text)
----从一个匹配模式中再次以text为条件选择UiObject
getChildByText(childPattern, text)
----与上面类似。
getChildCount()
----得到当前集合中控件的个数
5.5、UiScrollable对象
UiScrollable可以生成一个滚动动作的对象,其最大的作用就是可以实现滚动的查找某个元素。比如在“设置”菜单中,“语言和输入法”这个菜单比较靠下,需要滚动后才可以看到(找到),因此就用上了UiScrollable:
[java] view plaincopy
UiScrollable settingItems = new UiScrollable( new UiSelector().scrollable(true));
UiObject languageAndInputItem = settingItems.getChildByText(
new UiSelector().text("Language & input"), "Language & input",
true);
上面的形式就可以在滚动中查找显示有“Language & input”的控件,也就是“语言和输入法”的设置项。
5.6、等待操作和添加Log的方法
如果是对于一个标准的UiObject对象,可以通过clickAndWaitForNewWindow的方法在点击之后主动等待一段事件,但是如果需要额外的等待一段时间,特别对于getUiDevice().pressHome();这种操作,可能需要很长的事件去为下一步操作获取更多的事件,此时我们可以使用线程的sleep方法去实现:
[java] view plaincopy
//等待3秒
try {
Thread.sleep(3000);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
而添加Log的方法也可以通过Java标准的println来实现:
System.out.println("This used to print some log!!!" + setLanItem.getText());
以上Log将会在jar被运行时通过CMD窗口打印出来。
六、一个相对完整的测试case
下面就用一个相对连贯的测试用例来串一下上面的知识点,这个case用例要做的就是进入系统设置菜单,然后选择“语言和输入法”菜单,然后进入“语言设置”菜单,然后在第一项上点击,把当前语言设置为“简体中文”:
[java] view plaincopy
public void setChineseLan() throws UiObjectNotFoundException {
//进入操作前,先用Home键进入待机界面
getUiDevice().pressHome();
//进入“系统设置”菜单。也可以通过点击menu按键来实现
UiObject settingApp = new UiObject(new UiSelector().text("Settings"));
settingApp.click();
//等待3秒
try {
Thread.sleep(3000);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
//用滚动的方式查找并进入“语言和输入法设置”菜单
UiScrollable settingItems = new UiScrollable(
new UiSelector().scrollable(true));
UiObject languageAndInputItem = settingItems.getChildByText(
new UiSelector().text("Language & input"), "Language & input",
true);
languageAndInputItem.clickAndWaitForNewWindow();
//找到“English”的可点击项(因为当前是英文环境)
UiObject setLanItem = new UiObject(new UiSelector().text("English"));
setLanItem.clickAndWaitForNewWindow();
//Log输出
System.out.println("setLanItem-->" + setLanItem.getPackageName());
//由于无法识别中文,因此我们这里使用坐标去选择“简体中文”项
getUiDevice().click(350, 250);
//点击返回键,回到待机界面
getUiDevice().pressBack();
getUiDevice().pressBack();
getUiDevice().pressBack();
发表评论
-
Android systrace
2018-09-12 11:13 1033Understanding Systrace Caution: ... -
Android simpleperf
2018-09-12 11:02 1940Introduction of simpleperf What ... -
Android selinux安全策略
2016-06-21 17:16 4108基础知识 SEAndroid在架构和机制上与SELinux完 ... -
Android wifi captive portal 验证
2016-02-23 20:38 5196只要是国内的用户,基本上刷完5.0版本后如果没挂上V P N, ... -
Android CTS windows环境下测试
2015-09-08 11:36 6455Windows下CTS测试步骤 1.获 ... -
Android JNI 编程常见小问题
2015-09-08 11:31 1222extern "C" { jint Jav ... -
Android ServiceManager注册自定义service
2015-08-19 09:53 4154当我们要使用android的系统服务时,一般都是使用Conte ... -
Android 之 日期时间 时区同步
2015-05-13 15:47 6369系统设置--日期和时间-- ... -
虚拟按键 振动效果
2015-05-12 11:50 2124[DESCRIPTION] Setting->情景模式- ... -
Android ALMP 架设web服务器配置
2014-10-08 18:48 1480随着信息时代的发展,智能手机已经越来越普及。下面本文将带大家把 ... -
Android 签名信息读取
2014-08-22 17:32 1381public void getSingInfo() { ... -
Android 多语言 多地区对应表
2014-05-13 17:09 2146Arabic, Egypt (ar_EG) Arabic, ... -
Android XP MTP支持
2014-03-18 16:41 2313家里电脑是win7,连上直接豌豆荚装驱动就好了。但单位的XP却 ... -
Android emulated sdcard
2013-08-12 21:46 6170如果要添加 emulated sdcard ,需要一下几个 ... -
#if、#ifdef、#if defined之间的区别
2013-05-17 15:19 58471#if的使用说明 #if的后面接的是表达式 #if ( ... -
Android 动态库死机调试方法
2013-03-05 13:54 4872android系统中调试Java非常容易,一般遇到错误都在 ... -
Android sqlite3 详解
2012-09-13 22:13 2404SQLite库包含一个名字叫做sqlite3的命令行,它可以让 ... -
Android Launcher2 icon大小修改
2012-08-16 19:12 6050不同分辨率、不同屏幕的不同设备,android 原生的Laun ... -
Android 多语言开发
2012-08-16 18:37 2400第一部分 多语言定制的机制 1、ICU4C简介 ICU4 ... -
Android 添加底层核心服务
2012-06-04 10:52 5810为 Android添加底层核 ...
相关推荐
总结来说,"Android UIAutomator自动化测试"涉及到的是在Android应用开发中使用UIAutomator框架进行UI测试的方法和实践。通过这样的自动化测试,开发者可以提高测试覆盖率,减少手动测试的工作量,保证应用的质量和...
Android UIAutomator自动化测试是一种强大的工具,用于在Android平台上进行UI层面的自动化测试。它主要适用于Android 4.1及更高版本,但不支持Hybrid App和WebApp的测试。UIAutomator是基于Java的,这使得测试代码...
Android uiautomator自动化API简介 Android uiautomator是Android自动化测试的重要工具之一,它提供了一系列的API来实现自动化测试。本文主要介绍Android uiautomator的主要API,并结合实例和具体介绍。 一、...
本项目为Android Uiautomator2自动化测试的Python实现,源码包含104个文件,涵盖49个Python脚本、12个Markdown文档、9个PNG图片、4个文本文件、3个YAML配置、3个RestructuredText文件、2个HTML文件、2个Shell脚本、2...
UIAutomator是Google提供的一款强大的自动化测试工具,专为Android平台设计,用于进行UI层面的自动化测试。这个案例将深入探讨如何利用UIAutomator进行高效的自动化测试。 1. **UIAutomator简介** UIAutomator框架...
UiAutomator是一种针对Android应用程序的UI测试框架,它能够帮助开发者编写自动化测试脚本,以便于验证应用的功能是否正常运行。UiAutomator通过模拟用户在设备上的操作,如点击、滑动等来实现自动化测试的目的。 1...
教程名称:Uiautomator自动化框架课程目录:【】Android应用测试与调试实战【】Android自动化测试UIautomator-UiObject【】Android自动化测试UIautomator-UiScrollable【】Android自动化测试UIautomator-UiSelector...
使用uiautomator2+pytest+allure进行Android的UI自动化测试 测试携程旅行App,首页-机票-机票搜索模块 简介 使用uiautomator2+pytest+allure进行Android的UI自动化测试 环境搭建 pytest框架 pip install pytest ...
这个"uiautomator自动化所有jar包.zip"包含了进行`uiautomator`自动化测试所需的所有Java库文件(jar包),这些库文件对于在Android Studio环境中搭建自动化测试环境至关重要。 首先,我们来详细了解`uiautomator`...
在Android开发领域,UIAutomator是一个强大的自动化测试框架,它被设计用来进行UI层面的测试,尤其是对于系统应用以及第三方应用。这篇文档包含了Android UIAutomator的源代码,旨在帮助开发者深入理解其工作原理和...
在移动应用开发领域,尤其是Android平台,自动化测试已经成为不可或缺的一部分,因为它可以显著提高测试效率,减少手动测试的工作量,确保软件质量。腾讯作为国内互联网巨头,其在Android自动化测试方面有着丰富的...
在IT行业中,尤其是在移动应用开发领域,Android自动化测试框架扮演着至关重要的角色。它们能够显著提高测试效率,减少手动测试的繁琐工作,并确保应用程序的质量。本文将深入探讨Android自动化测试框架的相关知识点...
Android自动化测试UIautomator编写步骤 介绍编写步骤
常用的自动化测试工具有UI Automator、Appium、XCUITest和Calabash,其中UI Automator是Google提供的Java库,适用于Android第三方应用测试,但仅支持Java语言,并需将脚本打包到设备上运行。 【uiautomator2】是...
UIAutomator 是 Android SDK 提供的一个强大的自动化测试框架,它允许开发者通过编程方式与 Android 应用的 UI 元素进行交互,如点击、滑动等操作,从而验证应用的行为是否符合预期。 UIAutomator 的主要优点在于它...
本教程将聚焦于Android平台的UI自动化测试,特别是使用`uiautomator2`框架进行的自动化测试。`uiautomator2`是Google提供的一种强大的工具,用于编写UI级别的功能测试,它具有跨进程、无需依赖应用运行状态、可获取...
Android自动化测试UIautomator-UiWatcher api 介绍
Android自动化测试UIautomator-UiScrollable api介绍
Android自动化测试UIautomator-UiSelector api介绍
Android自动化测试UIautomator-UiObject api介绍