android系统下载安装 UiAutomator 键盘问题

你也可以通过 git 克隆项目来自己安装最新版本:

这有一个资料来参考可用的设置

PROVISIONING_PROFILE 已经从可用的的命令中消失了,但还是有必要设置的。

如果是为了持续集成,你可以发现很有用的方法来记录fruitstrap命令行和日志文件中的记录, 像这样:

在真机或模拟器上的Chrome执行测试

接着,像这样设置就可以在Chrome上执行测试了:

翻译备注:数据链接即2g, 3g, 4g的网络连接。

选择你想使用的设置,然后根据上面的表格发送正确的位掩码(bitmask)。

获取网络连接设置会返回基于同样规则的位掩码,你可以将其解码来获得网络设置。

在模拟器上测试apps必须要用模拟器专用的编译器,例如使用下列的命令来编译Xcode项目:

如果需要,你可以把.app 目录压缩成一个zip压缩档! Appium 会自行解压缩。让你能方便在非本地运行Appium。

用Appium去执行你的.apk档其实没什么特别需要注意的事项。如果需要,你可以把它压缩成zip压缩档。

想知道如何编写测试脚本,请参照测试范例:

基本上来说,首先先确定你启动了Appium:

然后执行你的WebDriver测试脚本,脚本必须包含下列的环境参数:

在这个脚本集里,myApp必须是下列其中之一:

一个模拟器编译过的.app 目录或者.zip 文件的本地绝对路径
一个包含着你的.app封包的zip档的url
appium安装根目录下的一个示例app的相对路径

在你选择的WebDriver库里,设定remote session使用上述的环境参数然后使用端口4723来连接本地服务器(或者使用你在Appium启动时所设定的端口)。现在你已经完成设置了!

首先,先确定你有一个而且必须是只能一个Android模拟器或者设备连接着。如果你输入adb devices,你应该只看到一个设备连接着。这将是Appium所用来测试的设备。当然,要连接一个设备,你需要准备好一个Android AVD (参考(Windows,Mac,或者Linux)以了解更多)。 如果Android SDK工具在你的环境变量path下,你可以简单的执行:

然后等android模拟器启动。有时候,因为某些原因,adb会卡住。如果它没有显示任何的设备或其他故障,你可以使用下列指令来重启:

现在,确认Appium已经启动:

有几种方法来启动一个Appium程序(效果和通过adb启动一模一样):

如果你不是很清楚在apk中有哪些activity,你可以通过以下方式来查看:

然后执行你的WebDriver测试脚本,脚本必须包含下列的环境参数:

在这个脚本集里,myApp必须是下列其中之一:

一个.apk 或者.zip 档的本地绝对路径
一个包含着你的.apk档的zip压缩档的url
appium安装根目录下的一个示例app的路径

在你选择的WebDriver库里,设定remote session使用上述的环境参数然后使用端口4723来连接本地服务器(或者是使用你在Appium启动时所设定的任意端口)。现在你已经设置完成了!

这样Appium就会启动 Selendroid 测试会话取代默认的测试会话。使用Selendroid的缺点是有时候它的API跟Appium非常不同。所以我们建议你在为你的旧设备或者混合app写测试脚本之前先仔细的阅读Selendroid的说明文档。

所有的标志都是可选的,但是有一些标志需要组合在一起才能生效。

5.9 移动手势的自动化

这些API可以让你使用多个驱动来建立任意手势。请参阅对应语言的Appium客户端文档,就可以找到使用这些API的例子。
触摸操作/多点触控 API的概述

在所有的appium客户端库中,触摸对象创建并给出一连串的事件。

这里有一个通过伪代码创建动作的例子:

上述模拟用户按下一个元素,滑动他的手指到另一个位置,然后从屏幕上释放其手指。

Appium按顺序执行这些事件。你可以添加一个 wait 事件来控制相应手势的时间。

appium客户端库有不同的方式来实现上述例子,比如:你可以传递一个坐标值或一个元素给 moveTo 事件。同时传递坐标和元素,会将坐标和元素对应起来,但这不是绝对的。

调用 perform 事件发送整个事件序列给appium,从而使触摸手势在设备上运行。

Appium客户端还允许人们直接通过驱动程序对象执行触摸操作, 而不是调用触摸操作对象的perform事件。

在伪代码中,以下两个是等价的:

多点触控手势只有两个方法,添加 (add) 和执行 (perform) 。

add 用于将不同的触摸操作添加到一个多点触控中。

当 perform 被调用的时候,所有被添加到多点触摸中的触摸事件会被发送到appium并且被执行,就像它们同时发生一样。Appium会执行“触摸事件”中的第一个事件,然后第二个,以此类推。

用两只手指点击的代码示例:

不幸的是有一个缺陷存在于iOS的7.x的模拟器上,ScrollViews无法识别由UIAutomation创建的手势 (在iOS上Appium使用的是UIAutomation) 。 为了实现此功能,我们已经提供了新的函数, scroll, 在大部分情况下可以让你实现跟ScrollView一样的功能!

要使用这特殊的功能,我们重写了driver中的 execute 和

注意:根据索引 (index) 进行查找并不可靠,请使用实例 (instance) 代替. 下面的示范是用Ruby语言编写的、针对 api demo (这是一个 appium 测试用的应用) 的实例。

根据文本 (text) 找到第一个元素。

找到第一个可滚动的元素, 然后找到文本是 "Tabs" 的文本控件。
"Tabs" 元素就是将要滚动到的控件。

程序处理非拉丁字符时存在一个的问题:对于带音标的字符,存在多种编码形式。例如,对于é这样的字符,有两种编码方式:一种是单独的字符é(Unicode中的LATIN SMALL LETTER E WITH ACUTE(带有音标的小写的拉丁字母'E')),另一种是音标在字符后边(COMBINING ACUTE ACCENT(字符和音标的组合))。为了解决这个问题,存在一个normalization (标准化) 方法,让"每个字符都有一个唯一的二进制表示"。

幸运的是,对ASCII字符(例如 不需要进行标准化的字符)进行标准化将不会产生任何变化,并且多次进行标准化
操作也不会发生额外的变化。因此,可以对所有字符使用标准化函数而不用担心产生不良影响。

在测试的时候遇到Unicode字符,你需要对字符进行标准化,确保期望的值和接收到的值一致。
有很多方法可以用来进行标准化,所以你要确保执行的是同样的方法!

一个由不同unicode文本编码导致的问题的标志是断言失败但报告却显示两个看起来一模一样的字符串:

当发生只因编码导致的问题时,输出看上去一样。从标准的角度,它们的编码应该也和它们看上去那样相同。

需要被查找的字符也应该需要标准化。比如,你在一个iOS的app上有一个叫做Найти的按钮,你也应该在find命令中标准化它。

否则这个按钮可能无法被找到。

默认情况下,iOS和Android的自动化工具都不支持向输入框输入非ASCII字符。

Appium 完全绕过键盘直接向iOS设备的输入框发送非ASCII字符。虽然这让这些文本在测试中被成功输入,但必须记住由键盘输入触发的业务逻辑将不会被测试到。

像上边说的一样,断言收到的文本前应该先标准化它。

通过下载并安装一个特殊键盘 , Android 可以支持输入 Unicode 字符,这个输入法允许文本通过ASCII在Appium和被测应用之间进行通讯。

为了使用这个功能,将unicodeKeyboard设置为true。如果想要键盘设置在测试完成后自动回到原始状态,

翻译备注:这个Unicode键盘并非虚拟键盘,在界面上不会显示出来,所以要进行其他类型的测试必须切换回其他输入法。


专业文档是百度文库认证用户/机构上传的专业性文档,文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“专业文档”标识的文档便是该类文档。

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取,非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档。

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取,非会员用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档。

付费文档是百度文库认证用户/机构上传的专业性文档,需要文库用户支付人民币获取,具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档。

共享文档是百度文库用户免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定。只要带有以下“共享文档”标识的文档便是该类文档。

还剩11页未读, 继续阅读

可用于使用不同分辨率的设备显示器上

能够复制复杂的用户操作序列

总是执行相同的动作序列,从而能够帮助我们在不同的设备上收集性能标准。

能够不改变任何 Java* 代码而多次运行并在不同的设备上运行

能够使用设备上的硬件按钮

为了对如何使用 UiAutomator 进行介绍,我将展示一个简单的程序。 该程序是标准的 Android 信息应用,能够向任何一个手机号码发送短信。

以下简要介绍了我们实施的操作:

如您所见,这非常简单。

创建三个函数来测试该应用:

创建一个可帮助我们运行上述所有特性的函数 — 一种主要函数:

该函数非常简单。 按主页按钮,显示主窗口后,打开功能表并查找该应用的图标。 点击该图标启动应用。

请点击这个链接阅读详细介绍:

我要回帖

更多关于 android系统下载安装 的文章

 

随机推荐