UIAutomator中win7有没有快速启动启动APP的类

采用Android Uiautomator实现app运行-开发-任务易推荐给您
采用Android Uiautomator实现app运行
通过任务易推广注册的用户,完成该任务后可以获得 1元(10K币)的返利,
采用Android自动测试UiAutomator技术实现测试app的开发,举例说明如下:两个app,一个是开发的测试app,一个是目标app(譬如京东app或淘宝app),点击测试app上一个按钮,自动启动京东并进行自动测试模拟操作即可!
任务易所有内容均为威客和外包行业网站提供或收集于互联网公开的信息,目的是给在网络上工作的威客和兼职人员收集更多的免费工作信息,以帮助更多的人自主就业。如果有内容触及您的权益,请给我们发邮件()并附上具体网址和说明,核实后我们将立即删除!对免责声明的解释、修改及更新权均属于任务易所有。
你觉得这个任务肿么样?
评分:3.5分
猪八戒网是全国最大的在线服务交易平台,由原《重庆晚报》首席记者朱明跃创办于2006年,服务交易品类涵盖创意设计、软件开发、网站建设、网络营销、文案策划、生活服务等多种行业。2011年猪八戒网获得IDG千万级美金投资,并被评选为中国2011年度“最佳商业模式十强”企业。2012年猪八戒还获得了国家文化产业示范基地称号。
你可能也对这些任务感兴趣
日内的任务UIAutomator中UIDevice的API讲解
sdk api 16开始,Android SDK开始支持两个做功能UI测试的新工具。
uiautomatorviewer,一个用以扫描以及分析Android应用程序的UI部件的工具。
以及uiautomator ,一个提供API用以自定义UI测试的Java库。
要应用上面两个工具,除了需要android sdk api 16以上的前提条件外,还要求Android SDK Tools为21版以上。
UiAutomator主要涉及一下几个类,大多数位于源码包的com.android.uiautomator.core下,以下几个类是平时在写脚本中用的最多的:UiDevice UiSelector UiScrollable UiObjec
UiCollection
每个测试用例都需要继承UiAutomatorTestCase,以实现测试环境的setup,teardown等同能。而UiAutomatorTestCase则是通过继承Junit3中的TestCase类,并在其中的setUp() 、tearDown() 、getParams() 函数中。其中主要是用Bundle实现Android Activity之间的通讯。在UiAutomatorTestCase,还加入了getUiDevice()等关于UiDevice的
函数,以实现在测试的任意地方均可调用UiDevice()。
此类主要包含了获取设备状态信息,和模拟用户至于设备的操作两类api。
可以通过getDisplaySizeDp(), getDisplayWidth() , getDisplayHeight()
,getProductName() ,getCurrentActivityName(),
getCurrentPackageName() 等获取设备相关信息。
pressMenu(), pressBack(), pressHome(), pressSearch()
,pressDPadCenter(), pressDPadRight(), pressDPadLeft(),
pressDPadUp(), pressDPadDown() ,pressDelete(), pressEnter(),
pressKeyCode(),
pressRecentApps(),click(),swipe(),getDisplayRotation()
setOrientationLeft()…
wakeUp(), sleep()
,dumpWindowHierarchy(), waitForWindowUpdate()等API可以灵活的操纵设备。
而takeScreenshot() 允许随时对设备截屏。
用于点击,拖拽的:
x,int y)单机执行用户指定的任意坐标。例如你要点击哪个Button的时候,可以使用取坐标的方式,实现点击
start X ,int start y ,int end X ,in tent Y,int
steps)从一个坐标到指定坐标。
getCurrentPackageName()获取当前的包名字。
getDisplayHeight()获取设备的显示高度,以像素为单位。比如可以配合这drag(),获取到当前屏幕高宽后解锁。
FreezeRotation()禁用传感器,禁止选择,使其在当前状态。比如可以测试只在横屏或者竖屏的情况
锁屏和唤醒
Sleep()锁屏,调用该方法可以模拟电源键,如果是关闭则无效果。
WakeUp()唤醒。正好与sleep相反,也相当于模拟电源键。
Isscreeon()检查屏幕是否唤醒。配合着上面两个方法使用,可以检查上面两个方法是否已经作用
Waitforidle(timeout),waitforidle
等待当前程序处于空闲状态,标注时间和不标注时间的区别在于一个是一直等,一个是给定的时间范围内等
Registerwatcher(string name,uiwatcher watcher)
注册监听器,可以对程序进行监听,在外层包裹,当程序异常的时候,就处理异常
最常用按键
Pressback()
回退,模拟手机按回退
Presshome()
HOME键,模拟手机按home
Pressmenu()
Men键盘,模拟手机按menu
start X ,int start y ,int end X ,in tent Y,int steps)
比如解锁屏幕的时候,可以使用这种方法
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。例如在平板的桌面要启动QQ或者微信之类的APP。没有text 和id的话不用类和包筛选摸查的方式。有没有直接通过查找应用包名的来启动的。例如com.tencent.qq
可以的,执行如下代码
是的可以通过intent来启动,但是得通过am命令来启动,实际使用中很大部分应用都是使用am命令启动的adb shell am start -n
&component &adb shell am start -n 包名/Activity名am命令格式可以 adb shell am -h
&查找帮助,启动各种intent的方式都有
Android UiAutom...& & 了解一个功能的是如何实现的最好方法就是阅读其实现代码.
& & 最近发展很多人都在Robotium,尤其是最近的4.0版本支持web app,功能越来越强大.看了一些别人的test case觉得和uiAutomator很相似,通过解析xml获取element位置,然后执行click.还有一个就是让我有点眼馋的就是支持多test case执行.不过看着好像还有些问题,比如执行到第二个case的时候会出现错误导致中断测试.那uiautomator可以执行多个测试用例吗,答案是可以的.通过阅读代码,发现uiautomator解析指令的时候支持多个-c XXXX,之前一直以为只能单case执行.查看官方文档原来里面有写"You can list multiple classes or methods by using a space as a separator."不错不错,对这个工具越来越有信心了.
& &adb shell uiautomator runtest shoujiQQ2012.jar -c com.uia.example.xxxx -c&com.uia.example.xxxx
& & 测试需要生成测试结果,如果uiautomator能支持直接生成xml文件.然后再制作一个客户端解析xml,实现可视化的测试结果.便于做数据统计分析.
阅读(...) 评论()UIAutomator
总体来说UiAutomator的主要缺点:
-需要基于Android
4.1以上版本,不适合用于自动化适配测试
-UI需要一定的条件才能被识别
-基于Junit 3, 相对于Junit4, Testng等测试框架,Junit 3不具备许多功能
-调试不易(如图所示,控制台中所报错误涉及中文时,不易于鉴别具体对应的错误项)
-Google官方支持
-明晰API,提供最灵活精确的控制。
-无需源代码
-可在不同App间调度
Uiautomator测试框架的流程
1、安装App到设备上,分析app的UI部件。
2、建立自动化测试以模拟用户操作。
3、编译测试用例为一个jar包,安装到已安装了待测试程序的设备上。
4、运行测试,并检查结果。
5、修正在测试中发现的Bug等问题。
91助手App界面
待测程序UI分析
在开始测试以前,通常需要先熟悉app的UI构成。uiautomatorviewer可以获得当前设备上所运行程序的截屏,并分析出相应部件的属性等内容。
uiautomatorviewer位于/tools/下,通常直接点击运行即可。若电脑连着多台设备,则需要设置ANDROID_SERIAL的环境变量。可通过adb&devices命令查找设备串行号。
在windows下,用set&ANDROID_SERIAL=设置
在Unix下,用export&ANDROID_SERIAL=设置
确认程序可以被测试
uiautomator需要依靠一些Android框架属性去运行功能测试。
1、用android:contentDescription属性标注ImageButton, ImageView,
CheckBox以及一些其他的用户接口控制键。
2、提供android:hint属性代替EditText的内容描述。
3、让android:hint与任意图像按钮关联,以便为用户提供反馈。例如:状态信息。
4、确认每个用户接口组件都与一个位置控制器关联,例如滑动球或D-pad。
5、用uiautomatorviewer确认每个UI组件都能被本测试框架控制。
若app采用自定义控件,则需要肯定该控件实施AccessibilityNodeProvider类,以对Android&accessibility&services开放。
配置测试项目
1、建立一个普通的Java&Project
2、加入Junit3库与uiautomator.jar,android.jar两个Jar包
测试项目编写
1、需要继承UiAutomatorTestCase
2、可用UiDevice表示设备
getUiDevice().pressHome();
3、UiSelector表示一个搜索条件以获取一个特定的组件。
UiObject&appItem&=&new&UiObject(new&UiSelector()
&&&.className("android.widget.ListView").instance(1)
&&&.childSelector(new&UiSelector().text("Apps")));
4、UiObject&一个UI组件,一般和UiSelector连用
5、UiObject&一系列的UI组件
UiCollection&videos&=&new&UiCollection(new&UiSelector()
&&&.className("android.widget.FrameLayout"));
int&count&=&videos.getChildCount(new&UiSelector()
&&&.className("android.widget.LinearLayout"));
6、UiScrollable代表一个可能需要滑动先用视图才会被用户看见的组件。
UiScrollable&settingsItem&=&new&UiScrollable(new&UiSelector()
&&&.className("android.widget.ListView"));
UiObject&about&=&settingsItem.getChildByText(new&UiSelector()
&&&.className("android.widget.LinearLayout"),&"About&&tablet");
about.click()
1、打开一个cmd输入
/tools/android&create&uitest-project&-n&&-t&1&-p&&
其中是测试Java项目名。
是测试项目的路径。
以上会产生一个Build.xml文件在测试项目下。
2、ant&build该文件,会生成对应的Jar文件
3、用adb&push&&/data/local/tmp/
命令把jar包放置到测试设备上。
用如下命令运行测试&
adb&shell&uiautomator&runtest&testing.jar&-c&com.nd.testing
其中testing.jar为测试生成的jar包,&com.nd.testing为测试程序的主Class名
意味着uiautomator不限于单个apk项目测试
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 无钥匙启动有没有必要 的文章

 

随机推荐