python的uiautomator包做安卓自动化测试python,怎么解决中文不能输入的问题,手机也装了utf7

&nbsp&nbsp &
&nbsp&nbsp
&nbsp&nbsp &
&nbsp&nbsp
UiAutomator
本文测试用例下载地址1.介绍Android团队在4.1版本(API16)中推出了一款全新的UI自动化测试工具UiAutomator,用来帮助开发人员更有效率的完成App的Debug工作,同时对于测试人员也是一大福音,为什么这么说呢?测试:“我发现了一个bug,你写的App打开A页面,再打开B页面有时会出现闪屏问题。”开发:“嗯?还有这样的问题,复现给我看看。(内心独白:我写的App怎么会有bug,一定是你用的姿势不对)”测试:一段忙碌的操作之后…“咦,怎么不出现了?”开发:“
UiAutomator2.0升级填坑记SkySeraph&May.28th&2017Email:更多精彩请直接访问SkySeraph个人站点:www.skyseraph.com&啰嗦GoogleAndroidDevelopers在2015年3月就发布了UiAutomator2.0版本(下文简称U2),而公司的核心产品中用到还是UiAutomator老版本(下文简称U1),业界用U2的也不是很多,虽然有诸多问题
android自动化测试常用的一些API,具体的请参考API导入设备唯一一个设备fromuiautomatorimportdeviceasd导入具体设备fromuiautomatorimportDeviced=Device('014E05DE0F02000E')具体的设备和端口连接fromuiautomatorimportDeviced=Device('014E05DE0F02000E',adb_server_host='192.168.1.68',adb_server_po
packagesms_importjava.lang.*;importjava.util.ArrayLimportjava.util.Cimportjava.util.Dimportjava.util.HashMimportjava.util.Iimportjava.util.Mimportjava.util.Simportandroid.R.importandroid.R.str
1、在build.gradle中添加:androidTestCompile'com.android.support.test.uiautomator:uiautomator-v18:2.1.0'并且把minSdkVersion改为18:minSdkVersion182、写demo布局:&?xmlversion=&1.0&encoding=&utf-8&?&&LinearLayoutxmlns:android=&
选择原因API接口丰富,包括android所有事件。不依赖屏幕坐标控制。对比Rubotium,无需新建测试项目。无需为了测试多安装个apk,而且不必进入adbshell环境调起测试程序。简单例子亮屏进入测试app界面点击按钮的简单操作publicclassMatorTestextendsUiAutomatorTestCase{publicvoidtest()throwsRemoteException,UiObjectNotFoundException{System.out.p
转:http://blog.csdn.net/itfootball/article/details/昨天一天在网上搜索解决上一篇文章中的exception:monkeyrunner内置uiautomator出错的原因虽然没找到解决的方法,但是让我无意中发现了一个好工具,比sl4a更好用的工具,直接包装uiautomator,调用uiautomator的api在本地直接编写脚本,然后运行测试case,这样比用Java写,然后再打包,runcase要简单的多,关键
转:http://blog.csdn.net/robinzhou/article/details/8447058要写UIAutomator的testcase,首先要用Eclipse创建一个JavaProject需要将Junit的lib加入到工程里还要添加Android.jar和uiautomator.jar,这两个文件在androidsdk中,没有升级SDK的朋友,建议升级到最新的SDK,因为uiautomator还有些不完善,在老的SDK上有些功能还不能用创建好工程后,就可
关于自动化测试其实并不是很难主要环境配置起来很麻烦网上有不少博客但有些细节没有说到反倒API说了一大推环境搭建起来了其他就很简单了我们会用到ANT可以把写的测试类打成Jar包Uiautomator-1.0并不可以直接运行到手机里需要借助ant打成jar包的形式Push到手机里在通过命令来运行比较反人类说真的不推荐使用Uiautomator2.0已经出来了还是2.0好点首先下载ANT在配置环境变量下载完了直接解压就行最好在C目录(反正也不大)全英文点击我的电脑系统属性高级系统设
Android自动化测试中会有不少背景色、透明度等测试验证,但各种框架都没有提供获取对象背景色等API,那么面对这样的测试需求,我们该如何进行呢?一、方案思路直接在测试框架上面做文章貌似不可行了,那么我们就要转向Android系统本身了,要验证背景色,首先自然得获取颜色值,UIAutomator2.0等框架没有提供对应API,那么我们还可以通过截图的方式获取元素图片,最直接的方式就可以通过像素点的方式获取颜色值,这样获得的颜色值是基于RGB数值的……这好像有点抽象,还是先了解
利用过UiAutomator2.0或者Espresso(Espresso也是android近年新出的一款Android自动化测试框架)做Android自动化测试的同学应该肯定会遇到这样的一个问题:自动化测试执行完后,不知道在哪里查看执行的log以及结果报告,除非每次都连着USB,在AndroidStudio中查看,但那样也是临时性的log和报告输出,清除或关闭AS就没有了……那么我们想把自动化测试做的更“专业”,执行的log每个测试机上总得生成一份吧,没log的定位跟踪错误那
AndroidUIAutomator浅谈[TOC]简介Uiautomator是谷歌推出的,用于UI自动化测试的工具,也就是普通的手工测试,点击每个控件元素看看输出的结果是否符合预期。比如登陆界面分别输入正确和错误的用户名密码然后点击登陆按钮看看是否能否登陆以及是否有错误提示等。注意:UIAutomator测试框架是基于instrumentation的API,运行在AndroidJunitRunner之上,同时UIAutomatorTest只运行在Android4.3(APIl
1、设备对象引入uiautomator,获取设备对象&所谓设备对象可理解为:Android模拟器或者真机&语法:fromuiautomatorimportdeviceasdd即为设备对象1.1、获取设备信息语法:d.info返回值:{u'displayRotation':0,u'displaySizeDpY':640,u'displaySizeDpX':360,u'currentPackageName':u'com.android.launcher',u'prod
本人在测试中经常遇到需要在app中需要输入一些内容,再去进入到下一个页面操作,所以经常变换输入法,自己写了一个把输入法设置为UTF7的方法,以免自己忘记设置导致用例失败。publicvoidsetInputUtf()throwsUiObjectNotFoundException{//设置输入法为UTF7clean();UiDevice.getInstance().pressHome();swipeLeft();getUiObjectByText(&设置&)
本篇文章翻译自Espresso&;UIAutomator-theperfecttandemEspresso是个功能强大、执行速度很快的Android自动化测试框架,但是它有一个重要的局限-你只可以在被测App的Context中操作。意味着下列App自动化测试需求无法实现:应用的推送消息同步联系人从另一个应用程序进入被测App因为你要处理移动设备的其他应用程序,比如通知栏、联系人等。事实上,UIAutomator2.0发布后可以实现上述功能。如AndroidDevelo
1.PreparationDosomepreparations.HereiswhatIuse:Eclipse,Ant,Android.Andinstallthemwilltakesteps.Beforeweuseeclipse,we'llneedJDK.a.HereissomereferenceaboutinstallEclipse.b.HereissomereferenceaboutinstallJDK.c.Hereissomereferenceaboutinstallan
1.准备工作有一些准备工作要做,这边我用的是:Eclipse,Ant,Android。安装的话会需要一些步骤,而且,在我们使用Eclipse之前,需要使用到JDK。a.如何安装Eclipse的相关文档。b.如何安装JDK的相关文档。c.如何安装Ant的相关文档。d.如何安装AndroidSDK的相关文档。安装这些软件,我们是很需要有耐心的,特别是当需要添加或者修改环境变量时。然而也不是太复杂,我们只需要根据提示一步一步来就行了。如果上面的链接失效的话,我们可以自己去网上搜索一
今天自己看了一下google的UiAutomator,尝试写了一个简单的例子,进行记录。用eclipse创建一个新的java工程,添加引用jUnit,然后添加相应的sdk/platforms下的android.jar,和uiautomator.jar到工程的外部引用jar中。下面就是写用例了。我对自己手机上的计算器写了一步测试用例。剩下的脑补了。importandroid.util.Limportcom.android.uiautomator.core.UiCollec
UiAutomatorView的位置:D:/ProgramFiles/adt-bundle-windows-x86_64-/sdk/tools/uiautomatorviewer.bat测试代码编写过程:1.建立一个java项目,新建lib文件夹。2.拷贝android.jar和uiautomator.jar到lib文件夹(jar文件的地址:D:/ProgramFiles/adt-bundle-windows-x86_64-/sdk/platf
UiAutomator是一个黑盒的自动化测试工具,UI界面被异常打断就会破坏脚本的正常运行。UiWatcher可以处理某些可预知的打断场景。这里例举来电打断场景处理。代码UiWatcherwatcher=newUiWatcher(){publicbooleancheckForCondition(){UiObjectIncall=newUiObject(newUiSelector().resourceId(&com.android.incallui:id/answer
你可能还喜欢
你可能感兴趣
阿里云教程中心为您免费提供信息,所有相关内容均不代表阿里云的意见!投稿删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内答复
售前咨询热线
支持与服务
资源和社区
关注阿里云
International查看: 1608|回复: 2
python利用uiautomator编写自动化脚本遇到的问题,希望大家帮忙解答。。
该用户从未签到
20测试积点
做手机自动化工测试,利用uiautomator编写自动化脚本,在android6.0的设备上运行时正常的,现在测试android7.0的设备,就会出现如下错误,请大神指教是什么问题?要怎么解决?
Traceback (most recent call last):
&&File &C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\urllib3\connection.py&, line 141, in _new_conn
& & (self.host, self.port), self.timeout, **extra_kw)
&&File &C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\urllib3\util\connection.py&, line 83, in create_connection
& & raise err
[Decode error - output not utf-8]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
&&File &C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\urllib3\connectionpool.py&, line 600, in urlopen
[Decode error - output not utf-8]
& & server.start(timeout=30)
&&File &C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\uiautomator\__init__.py&, line 481, in start
& & raise IOError(&RPC server not started!&)
OSError: RPC server not started!
[Finished in 348.7s with exit code 1]
Traceback (most recent call last):
File "C:%users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages%urllib3\connection.py", line 141, in _new_conn
(self.host, self.port), self.timeout, **extra_kw)
File "C:%users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages%urllib3%util\connection.py", line 83, in create_connection
[Decode er ...
TA的每日心情擦汗16&小时前签到天数: 699 天连续签到: 1 天[LV.9]测试副司令
Traceback (most recent call last):
&&File &C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\urllib3\connection.py&, line 141, in _new_conn
& & (self.host, self.port), self.timeout, **extra_kw)
&&File &C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\urllib3\util\connection.py&, line 83, in create_connection
& & raise err
[Decode error - output not utf-8]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
&&File &C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\urllib3\connectionpool.py&, line 600, in urlopen
[Decode error - output not utf-8]
& & server.start(timeout=30)
&&File &C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\uiautomator\__init__.py&, line 481, in start
& & raise IOError(&RPC server not started!&)
OSError: RPC server not started!
[Finished in 348.7s with exit code 1]
测试积点 +10
奖励原因:乐于助人
TA的每日心情擦汗16&小时前签到天数: 699 天连续签到: 1 天[LV.9]测试副司令
语言转换错误。
Decode error - output not utf-8
安装一个支持utf-8插件
站长推荐 /3
你真的了解性能测试吗?如果您想了解更多,可以找专家进行提问哦
了解自己的心里圈,学习不同的内容,让自己由内而外强大起来!
众里寻你千百度
缘来你需要的在此处
2018博为峰讲师团招聘全行业兼职讲师
Powered byAndroid自动化测试(UiAutomator)简要介绍(原)
一、一个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、必备条件:
2、SDK(API高于15)
3、Eclipse(安装ADT插件)
4、ANT(用于编译生成jar)3.2、简要步骤:
1、安装JDK并添加环境变量。
安装后,一定要通过JAVA_HOME的方式添加环境变量,即先建立JAVA_HOME变量,然后在path中添加%JAVA_HOME%\
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文件
文件内容为:
import com.android.uiautomator.core.UiO
import com.android.uiautomator.core.UiObjectNotFoundE
import com.android.uiautomator.core.UiS
import com.android.uiautomator.core.UiS
import com.android.uiautomator.testrunner.UiAutomatorTestC
public class Runner extends UiAutomatorTestCase {
public void testDemo() throws UiObjectNotFoundException {
getUiDevice().pressHome();
// 进入设置菜单
UiObject settingApp = new UiObject(new UiSelector().text("Settings"));
settingApp.click();
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()
----点击相应的按键
----当手机处于灭屏状态时,唤醒屏幕,并解锁。
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就可以得到一个控件。
----点击控件
clickAndWaitForNewWindow()
----点击某个控件,并等待窗口刷新
longClick()
clearTextField()
----清除文本,主要针对编辑框
getChildCount()
----这个方法可以看出,其实UiObject也可以是一个控件的集合
getPackageName()
----得到控件的包名
getSelector()
----得到当前控件的选择条件
----得到控件上的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:
UiScrollable settingItems = new UiScrollable( new UiSelector().scrollable(true));
UiObject languageAndInputItem = settingItems.getChildByText(
new UiSelector().text("Language & input"), "Language & input",
上面的形式就可以在滚动中查找显示有“Language & input”的控件,也就是“语言和输入法”的设置项。
5.6、等待操作和添加Log的方法
如果是对于一个标准的UiObject对象,可以通过clickAndWaitForNewWindow的方法在点击之后主动等待一段事件,但是如果需要额外的等待一段时间,特别对于getUiDevice().pressHome();这种操作,可能需要很长的事件去为下一步操作获取更多的事件,此时我们可以使用线程的sleep方法去实现:
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用例要做的就是进入系统设置菜单,然后选择“语言和输入法”菜单,然后进入“语言设置”菜单,然后在第一项上点击,把当前语言设置为“简体中文”:
public void setChineseLan() throws UiObjectNotFoundException {
//进入操作前,先用Home键进入待机界面
getUiDevice().pressHome();
//进入“系统设置”菜单。也可以通过点击menu按键来实现
UiObject settingApp = new UiObject(new UiSelector().text("Settings"));
settingApp.click();
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",
languageAndInputItem.clickAndWaitForNewWindow();
//找到“English”的可点击项(因为当前是英文环境)
UiObject setLanItem = new UiObject(new UiSelector().text("English"));
setLanItem.clickAndWaitForNewWindow();
System.out.println("setLanItem--&" + setLanItem.getPackageName());
//由于无法识别中文,因此我们这里使用坐标去选择“简体中文”项
getUiDevice().click(350, 250);
//点击返回键,回到待机界面
getUiDevice().pressBack();
getUiDevice().pressBack();
getUiDevice().pressBack();
uiautomator介绍和使用
使用uiautomatorviewer做UI测试
uiautomator使用
UIAutomator2.0详解(UIDevice篇----waitForIdle)
Python-uiautomator使用说明文档
UIAutomator快速上手
Android UIAutomator浅谈
关于Uiautomator的学习历程(1)
android自动化:Uiautomator定位元素小利器
UiAutomator自动化测试框架介绍
没有更多推荐了,博客分类:
转载自:http://www.cnblogs.com/liuyuxuan/p/5614923.html
1.UiAutomator——基于UIAutomation的用户界面自动化测试框架,可以跨应用工作,谷歌亲生的。
UIAutomation在Android4.3发布时有了新版本,官方简介:。
Android4.3之前:使用inputManager或者更早的WindowsManager来注入KeyEvent
Android4.3之后:使用Accessibility APIs来注入事件。(AccessibilityService本来是做一些辅助功能的,提供了一系列的事件回调,帮助我们指示一些用户及界面的状态变化,主要给残障人群提供帮助。)
2.Robotium——基于Instrumentation开发出来的一套测试框架
Instrumentation的官方简介:
Instrumentation可以把测试包和目标测试应用加载到同一个进程中进行。既然各个控件和测试代码都运行在同一个进程中了,测试代码当然就可以调用这些控件的方法了,同时修改和验证这些控件的一些项就不在话下了。
Instrumentation的运行原理:InstrumentationTestRunner会在目标应用代码运行之前调用onCreate方法建立一个新的线程并为这个线程添加一个消息队列,这个线程循环处理其他线程发过来的消息事件,并与之进行交互。
跨应用:Android4.3之后Instrumentation引入了getUiAutomation接口的实例进行跨应用测试。
3.Appium——跨平台,允许采用同一套API在不同的平台(IOS,Android)上编写测试代码,让测试套件在IOS和Android平台上实现代码复用成为可能。
Appium的核心是一个暴露了REST API的网络服务器。这个服务器接收客户端过来的连接,监听客户端过来的命令,在移动设备上运行命令,然后把代表命令运行结果的HTTP响应包发送回客户端。
二、优缺点对比
是否支持设备无源码测试(黑盒测试)
能否进行跨应用测试
是否是谷歌原生
支持编程语言
几乎所有语言
是否有签名一致的问题
是否需要解决中文输入问题
建议开发团队增加的控件信息
Content Description
resource-id
Content Description
是否需要API17及以上
Junit支持版本
Junit3/Junit4
是否支持webview
三、补充内容——Android三种注入事件的方式
1、使用内部APIs(内部API是谷歌没有对外开放的代码,存在一定的风险)
通过获得WindowManager的一个实例来访问injectKeyEvent/injectPointerEvent这两个事件注入方法。
在应用内可正常工作,在应用外不能正常工作(INJECT_EVENTS是需要系统权限的)。
2、使用instrumentation对象(开放的API,比内部API干净)
通过instrumentation的一个实例来访问injectEvent,同上面的内部APIs的方法。
所以在应用内部可以正常的工作,在应用外部不嫩正常的工作。
3、直接注入事件到设备 /dev/input/eventX
linux以系统设备的方式向用户暴露了一套统一的事件注入接口 /dev/input/eventX(其中X代表一个整数)。我们可以直接调用。
需要rooted过的设备,如:
http://blog.csdn.net/lv/article/details/
chmod 666 /dev/input/event3
浏览: 2277584 次
来自: 南京
麻烦问下,“获取每个Item相似性最高的前N个Item”,这个 ...
Java读源码之Netty深入剖析网盘地址:https://p ...
[size=medium][b]“更新一个文档”这部分的说法错 ...
以后看看,谢谢
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'}

我要回帖

更多关于 pythonui自动化测试 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信