
互相学习android自动化测试,请关注我的微博:weibocom/ganchaojiang
一、一个BUG引发的问题
如果研发过程中有一个BUG:“不断的切换手机语言出现花屏现象”。这个问题我们如何验证呢?我想,最好的方式应该是自动化测试。
那么,自动化测试可以完成哪些任务呢?
简单的说,那些重复性的测试工作,都可以交给自动化完成:
1、设置手机的语言
2、添加、删除、收藏联系人
3、拨号、挂断
4、甚至发送短信、收藏短信
如果需要上面的功能,那么就开始自动化之旅吧。
二、Android自动化测试简单介绍
Android自动化测试主要分为Monkeyrunner、Rubotium、UiAutomator、Monkey(在我看来这个不算)等。主要特点:
1、Monkeyrunner:优点: *** 作最为简单,可以录制测试脚本,可视化 *** 作;缺点:主要生成坐标的自动化 *** 作,移植性不强,功能最为局限;
2、Rubotium:主要针对某一个APK进行自动化测试,APK可以有源码,也可以没有源码,功能强大;缺点是针对APK *** 作,而且需要对APK重新签名(有工具),因此 *** 作相对复杂;
3、UiAutomator:优点:可以对所有 *** 作进行自动化, *** 作简单;缺点:Android版本需要高于40,无法根据控件ID *** 作,相对来说功能较为局限,但也够用了;
4、Monkey:准确来说,这不算是自动化测试,因为其只能产生随机的事件,无法按照既定的步骤 *** 作;
由上面介绍可以有这样的结论:测试某个APK,可以选择Rubotium;测试过程可能涉及多个APK,选择UiAutomator;一些简单的测试,选择Monkeyrunner;
本文主要介绍UiAutomator的使用方法。
三、环境搭建
31、必备条件:
1、JDK
2、SDK(API高于15)
3、Eclipse(安装ADT插件)
4、ANT(用于编译生成jar)
32、简要步骤:
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
四、详细 *** 作
41、建立工程
用Eclipse新建Java Project,注意,不是Android Project!
42、添加JUnit库
next->Libraries->Add Library
43、添加Android库
Add External JARs:
找到路径Android-sdk\platforms\android-17\下面的androidjar和uiautomatorjar添加进来:
所有库添加完应该是这个样子:
44、在src中添加包,然后添加class文件
文件内容为:
[java] view plaincopy
package com;
import comandroiduiautomatorcoreUiObject;
import comandroiduiautomatorcoreUiObjectNotFoundException;
import comandroiduiautomatorcoreUiScrollable;
import comandroiduiautomatorcoreUiSelector;
import comandroiduiautomatortestrunnerUiAutomatorTestCase;
public class Runner extends UiAutomatorTestCase {
public void testDemo() throws UiObjectNotFoundException {
getUiDevice()pressHome();
// 进入设置菜单
UiObject settingApp = new UiObject(new UiSelector()text("Settings"));
settingAppclick();
//休眠3秒
try {
Threadsleep(3000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1printStackTrace();
}
// 进入语言和输入法设置
UiScrollable settingItems = new UiScrollable( new UiSelector()scrollable(true));
UiObject languageAndInputItem = settingItemsgetChildByText(
new UiSelector()text("Language & input"), "Language & input", true);
languageAndInputItemclickAndWaitForNewWindow();
}
}
上面工程路径在e:\workspace\AutoRunner,类全名为comRunner,至于具体的作用我们现在不去关心。
45、找到SDK ID
CMD进入\Android-sdk\tools\目录下,运行命令:
android list
查看对应android版本的SDK的ID值,当前是60;
46、创建build文件
仍然在\Android-sdk\tools\目录下,运行命令:
android create uitest-project -n <name> -t <android-sdk-ID> -p <path>
比如:
android create uitest-project -n AutoRunner -t 60 -p e:\workspace\AutoRunner
上面的name就是将来生成的jar包的名字,可以自己定义,android-sdk-ID就是上面看到的6;path是Eclipse新建的工程的路径;运行命令后,将会在工程的根目录下生成buildxml文件。如果没生成,检查上面的步骤。
47、编译生成jar
CMD进入项目的工程目录,然后运行ant build,将使用ant编译生成jar,成功将会提示:
然后会在bin目录下生成jar文件。
48、push并运行jar
adb push <jar文件路径> data/local/tmp
adb shell uiautomator runtest <jar文件名> -c <工程中的类名,包含包名>
比如:
adb push e:\workspace\AutoRunner\bin\AutoRunnerjar data/local/tmp
adb shell uiautomator runtest AutoRunnerjar -c comRunner
然后就能看到手机会按照Runner中的步骤自动执行。具体效果就是,进入设置菜单,然后再进入“语言和输入法”菜单
五、代码分析
我们从几个最重要的对象来介绍。
51、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()
----将手机旋转状态回归正常。
52、UiSelector对象
这个对象可以理解为一种条件对象,描述的是一种条件,经常配合UiObject使用,可以得到某个(某些)符合条件的控件对象。
checked(boolean val)
----描述一种check状态为val的关系。
className(className)
----描述一种类名为className的对象关系
clickable(boolean val)
>
输入法找不到的解决方法,一共就五种:
方法一:
右击任务栏空白处-工具栏-语言栏即可。
方法二:
首先打开文字服务
1 单击开始,单击 控制面板,然后双击“区域和语言选项”。
2 在语言选项卡上的“文字服务和输入语言”下,单击详细信息。
3 在首选项下,单击语言栏。
4,选择“关闭高级文字服务”复选框,,把里面的钩去掉
方法三:
其次设置语言栏的输入法
1 单击开始,单击控制面板,然后双击“区域和语言选项”。
2 在语言选项卡上,在“文字服务和输入语言”下,单击详细信息。
3 在首选项下,单击语言栏。
4 选择“在桌面上显示语言栏”复选框。
如果您安装了文字服务, 语言栏将自动显示。 但是,如果您关闭了语言栏,您可以使用此步骤重新显示它。 如果要将语言栏最小化到任务栏,右击任务栏上的语言图标,然后单击“设置",选择你要用的输入法添加就是了
把代码复制到treepanel就可以了,自己理解吧viewConfig:{//checkbox联动onCheckboxChange:function(e,t){varitem=egetTarget(thisgetItemSelector(),thisgetTargetEl()),record;if(item){record=thisgetRecord(item);varcheck=!recordget('checked');recordset('checked',check);if(check){recordbubble(function(parentNode){parentNodeset('checked',true);parentNodeexpand(false,true);});recordcascadeBy(function(node){nodeset('checked',true);nodeexpand(false,true);});}else{recordcascadeBy(function(node){nodeset('checked',false);});}}}},
在我们日常使用App过程中,经常会看到App界面有一些d窗提示(如下图所示)这样的提示框称之为Toast提示框,这些提示元素出现后等待3秒左右就会自动消失,那么我们该如何获取这些元素文字内容呢?
Appium 163开始支持识别Toast内容,主要是基于UiAutomator2,
因此需要在Capablity配置如下参数:
desired_caps['automationName']='uiautomator2'
安装appium-uiautomator2-driver: 安装命令如下:
cnpm install appium-uiautomator2-driver
安装成功后可以在 C:\Users\XXXX\node_modules看到对应的文件:
进入登录界面输入错误的用户名或者密码,获取Toast内容:
注意:Toast内容为中文时,顶部必须注释# coding=utf-8 否则会因为编解码导致文字识别失败。
前端支付宝蚂蚁森林怎么开发的如下,2016年8月,支付宝公益板块正式推出蚂蚁森林,用户步行替代开车、在线缴纳水电煤、网络购票等行为节省的碳排放量,将被计算为虚拟的“绿色能量”,用来在手机里养大一棵棵虚拟树。虚拟树长成后,支付宝蚂蚁森林和公益合作伙伴就会在地球上种下一棵真树,或守护相应面积的保护地,以培养和激励用户的低碳环保行为。
2018年10月23日,蚂蚁金服旗下支付宝官方宣布,全国绿化委员会办公室、中国绿化基金会已经与蚂蚁金服集团正式签署“互联网+全民义务植树”战略合作协议,支付宝蚂蚁森林种树模式将被正式纳入国家义务植树体系。
2019年1月,蚂蚁森林上线由全国绿化委员会办公室和中国绿化基金会发放的“全民义务植树尽责证书”
Appium是基于UIAutomator框架实现的。Appium测试进程与目标应用进程是分开的,所以Appium不能直接访问目标应用的各种element属性进行copy&paste,而只能模拟触发相应的事件对目标应用进行 *** 作。这就好比触摸屏监控驱动和目标应用的关系:驱动监控到用户点击屏幕的事件后,驱动就会去判断点击的位置是否是一个文本框,如果是的话,就去打开系统键盘给用户进行输入。
以上就是关于Android uiautomator 自动化测试如何打log,方便查看测试结果全部的内容,包括:Android uiautomator 自动化测试如何打log,方便查看测试结果、android8以后sdk自带的uiautomator直接打开,截取不到机器界面信息、uiautomator怎么随机往文本框里面写字等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)