其他分享
首页 > 其他分享> > Airtest之使用Poco测试Android原生应用

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反复重装,此时可以检查以下几个方面:

 

一个计算器的脚本实例

每个手机都自带计算器,首先我们需要获取手机上计算器应用的包名。打开计算器,在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基本功能(一)

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

 

标签:AirtestIDE,Poco,calculator,miui,poco,Airtest,Android,com
来源: https://www.cnblogs.com/songzhenhua/p/15057127.html