5 | 如何在Android手机上进行自动化测试(下)

5.1 前言


通过阅读本篇教程,你将会了解到:如何使用Poco对Android原生应用进行测试

Poco支持直接对任何Android原生应用(非游戏引擎、非WebView)进行UI层次结构识别,用法上与Poco在其它平台上一模一样。

注:基于WebView的应用比较特殊(如微信小程序或浏览器),请见文档Poco如何支持WebView检视


 

5.2 开始前的准备


在AirtestIDE的Poco Assistant面板中选择Android模式之后,AirtestIDE会开始自动向手机里安装Pocoservice.apk和Pocoservice-test.apk,部分型号手机需要手动点击“确认安装”才能顺利安装。

安装完成后,AirtestIDE会自动启动PocoService,它会定时抓取Android界面上的层次结构信息,稍等片刻就可以在AirtestIDE界面中看到当前界面的UI层次结构树。

点击UI树上的任意节点,可以在Log面板中看到该节点的所有属性,同时设备画面中将出现方框,把对应位置框选出来,方便定位节点。

如果Pocoservice启动失败,会导致Pocoservice.apk反复重装,此时可以检查以下几个方面:

  • Android是否版本过低,Poco支持Android SDK API ≥ 19,即Android 4.4及以上
  • 请关闭PC或手机上连接的网络代理Proxy,否则可能导致连不上Poco
  • 可以尝试卸载手机中2个Pocoservice相关的APK,然后手工重新安装一遍,在poco\poco\drivers\android\lib目录下能够找到这两个APK
  • 部分vivo和OPPO手机需要在手机设置-输入法设置中,把Yosemite输入法设置为默认输入法+当前输入法


 

5.3 一个使用计算器的例子

 

在这里我们提供一个使用Poco对一个计算器应用编写代码的例子,点这里下载示例App(calculator),并将此App安装到手机上。

按照刚才说的,在AirtestIDE中的Poco辅助窗下拉菜单中选择Android后,AirtestIDE将会自动启动Pocoservice,显示出当前的UI控件层次结构树。此后就可以在AirtestIDE中进行Poco语句的编写和录制了。

5.3.1 代码示例

下面这段代码例子将演示一个简单的功能:点击calculator的界面,实现一个1+1=2的运算验证。

from poco.drivers.android.uiautomation import AndroidUiautomationPoco

poco = AndroidUiautomationPoco()

poco('com.google.android.calculator:id/digit_1').click()
poco('com.google.android.calculator:id/op_add').click()
poco('com.google.android.calculator:id/digit_1').click()
poco('com.google.android.calculator:id/eq').click() result = poco('com.google.android.calculator:id/formula').get_text() assert_equal(result, '2', '1+1=2 ^^') 

 

在这段代码中,我们使用poco = AndroidUiautomationPoco()初始化了一个poco对象,然后分别选取了1 + 1按钮进行点击操作后,使用get_text接口非常轻松地获取到了结果控件的值2,并且使用断言语句进行结果验证。

这个例子非常简单,更多poco用法和例子请见poco tutorial

5.3.2 同时连接多台手机使用Poco

在上一节《如何在Android手机上进行测试(上)》多机协作中,我们提到了一个脚本可以连接多台Android手机,并且用set_current接口在手机之间切换:

from airtest.core.api import connect_device
dev1 = connect_device("Android://127.0.0.1:5037/serialno1")  # 连上第一台手机
dev2 = connect_device("Android://127.0.0.1:5037/serialno2")  # 第二台手机 set_current(1) 

 

假如我们在连上手机后,想要分别使用poco去获取控件和点击这两台不同的手机,此时需要分别初始化两个Poco,就像这样:

from airtest.core.api import connect_device
dev1 = connect_device("Android://127.0.0.1:5037/serialno1")  # 连上第一台手机
poco1 = AndroidUiautomationPoco(dev1)
dev2 = connect_device("Android://127.0.0.1:5037/serialno2")  # 第二台手机 poco2 = AndroidUiautomationPoco(dev2) set_current(1) # 切到第二台手机 poco2('com.google.android.calculator:id/digit_1').click() 

 

同理,假如不使用connect_device接口连接手机,而是通过直接在命令行中传入–device来自动连接手机的话,不需要在代码里重复执行connect_device。此时只需要分别获取到设备对象,并且使用设备对象初始化Poco就可以了:

from airtest.core.api import G

print(G.DEVICE_LIST)  # 假设当前总共有2台手机
poco1 = AndroidUiautomationPoco(G.DEVICE_LIST[0]) poco2 = AndroidUiautomationPoco(G.DEVICE_LIST[1])

转载于:https://www.cnblogs.com/ShineLeem/p/11326180.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
手机应用程序进行自动化测试的常用工具有Appium和UI Automator。下面是使用这些工具进行自动化测试的步骤: 1. 安装Appium或UI Automator:首先,根据你的开发环境,选择合适的工具并进行安装。Appium支持多种编程语言,包括Java、Python、Ruby等,而UI Automator主要用于Android平台。 2. 配置测试环境:确保你的测试环境配置正确,包括安装所需的依赖库和驱动程序。例如,对于Appium,你需要安装Node.js、Appium Server和相关移动设备的驱动程序。 3. 编写测试脚本:使用所选的编程语言编写测试脚本。这些脚本将用于与应用程序进行交互,执行各种测试操作。在脚本中,你可以定义测试用例、交互步骤和验证逻辑。 4. 配置设备连接:连接你的移动设备或模拟器到电脑上,并确保它们可以被识别和访问。你可以使用ADB命令行工具来管理设备连接。 5. 启动Appium服务或UI Automator:启动Appium Server或UI Automator服务,以便它们可以与设备进行通信。你可以使用命令行或图形界面工具来启动服务。 6. 运行测试脚本:运行你编写的测试脚本,它们将与应用程序进行交互并执行各种测试操作。测试脚本可以通过Appium或UI Automator提供的API来访问应用程序的各个元素和功能。 7. 分析测试结果:一旦测试脚本执行完毕,你可以分析测试结果并查看测试覆盖率、错误报告等。根据需要,你可以进行调试和修复测试脚本中的问题。 通过使用这些自动化测试工具,你可以大大提高对手机应用程序的自动化测试效率,并确保应用程序在不同设备和场景下的稳定性和一致性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值