Airtest之使用Poco测试Android原生应用

>以下基于 python3.8;airtestIDE1.2.9;airtest1.1.11;pocoui1.0.82

什么是Android原生应用,简单说就是没有使用Webview,也不是游戏app。如果一个App有Webview则是混合应用,目前市面上大部分App是混合应用。

首先连接设备,可以参考之前文章:AirtestIDE连接安卓真机及常见问题

连接好设备后,在AirtestIDE左下的Poco辅助窗,选择Android,此时AirtestIDE会向手机安装Pocoservice.apk,有些手机需要给予权限后才能安装成功,另外会弹一个版本相关的提示,点确定即可。

 

 

之后AirtestIDE会启动Pocoservice,它会每隔几秒抓取手机当前界面的控件树信息,并更新到Poco辅助窗下面。

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

  • 是否Android版本过低,Poco支持Android SDK API ≥ 19,即Android 4.4及以上

  • 请关闭PC或手机上连接的网络代理Proxy,否则可能导致连不上Poco

  • 可以尝试卸载手机中的2个Pocoservice相关的APK后,手工重新安装一遍,在AirtestIDE目录下的\poco\drivers\android\lib目录下能够找到这两个APK

  • 部分vivo和oppo手机需要将手机设置-输入法设置中,把Yosemite输入法设置为默认输入法+当前输入法

 

一个计算器的脚本实例

每个手机都自带计算器,首先我们需要获取手机上计算器应用的包名。打开计算器,在PC中输入命令:

adb shell dumpsys activity top

之后我们可以在输出中找到包名,每个系统内容可能不太一样,我的是com.miui.calculator

 

 

接下来我们就写一个1+1=2的例子

# -*- encoding=utf8 -*-

from airtest.core.api import *
from poco.drivers.android.uiautomation import AndroidUiautomationPoco

# 连接设备、初始化日志路径
auto_setup(__file__, logdir=True, devices=["Android:///"])

# 启动计算器
start_app("com.miui.calculator")
sleep(3)

# 初始化安卓原生poco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)

# 依次点1+1=,这块代码可以使用IDE左下的录制功能
poco("com.miui.calculator:id/digit_1").click()
poco("com.miui.calculator:id/op_add").click()
poco("com.miui.calculator:id/digit_1").click()
poco("com.miui.calculator:id/btn_equal_s").click()

# 获取结果控件的文本并断言,可以使用IDE左下的锁定功能,并找到结果控件
r = poco("com.miui.calculator:id/result").get_text()
assert_equal("= 2", r, "结果=2")

 

录制和查找控件不会用可以看之前文章:AirtestIDE基本功能(一)

写完后运行,正常执行完毕。点击生成报告

 

---------------------------------------------------------------------------------

关注微信公众号即可在手机上查阅,并可接收更多测试分享~

posted @ 2021-07-25 09:53  ☆星空物语☆  阅读(631)  评论(0编辑  收藏  举报