AirtestProject Airtest 封装的 Tidevice 接口有多好用(二)

fishfish-yu · 2024年08月01日 · 3009 次阅读

此文章来源于项目官方公众号:“AirtestProject”\
版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途

一、前言

上节课我们分享了一批 Airtest 封装的 Tidevice 接口,是有关获取设备信息的,还没看到的同学可以戳这里复习一下。那么本周我们继续来看一下 Airtest 还封装了哪些 Tidevice 的接口吧~

二、Airtest 封装的 Tidevice 接口

2.1 list_app(udid ,app_type='user') :列出手机上安装的应用列表

通过list_app()接口,我们可以查询本地所连接设备上安装的应用列表,同时该接口支持对类型进行筛选,其中括号内的参数udid所填的是需要查询的设备udidapp_type的话,是可以传入需要列出的应用程序类型,包括 user/system/all

from airtest.core.ios.ios import TIDevice

print(TIDevice.list_app(udid, "system"))

2.2 install_app(udid,file_or_url):安装 ipa 包

通过install_app(udid,file_or_url)可以直接安装 ipa 包体,支持本地路径或 URL 的传入,实现 ipa 包的直接安装。

from airtest.core.ios.ios import TIDevice

TIDevice.install_app(udid,r"D:\demo.ipa")
TIDevice.install_app(udid,"https://download")

2.3 uninstall_app(udid,bundle_id):卸载 bundle_id 对应的包体

通过使用uninstall_app(udid,bundle_id)接口可以直接卸载掉不需要的包体,其中传入的数据包括设备的udid、以及需要卸载的应用bundle_id

from airtest.core.ios.ios import TIDevice
TIDevice.uninstall_app(udid,"com.163.itest.h12")

2.4 start_app(udid,bundle_id):启动 bundle_id 对应的包体

通过使用start_app(udid,bundle_id)接口可以直接通过bundle_id打开对应的 app 或游戏,这样就不需要游戏或应用图标在桌面或某个指定页面。只需要传入设备的udid以及应用或游戏的bundle_id就可以实现直接开启应用

from airtest.core.ios.ios import TIDevice
TIDevice.start_app(udid,'com.apple.mobilecal')

2.5 stop_app(bundle_id):停止 bundle_id 对应的包体

通过使用stop_app(udid,bundle_id)接口可以直接通过bundle_id关闭当前打开的的 app 或游戏,这样就不需要通过点击 home 键或退出键去实现退出应用了。

from airtest.core.ios.ios import TIDevice
TIDevice.stop_app(udid,'com.apple.mobilecal')

2.6 ps(udid):获取当前的进程列表

通过ps(udid)可以直接查询当前所连接设备上正在运行的进程列表,并将进程的pidnamebundle_id等以字典的形式展现出来,可以根据自己的需求去调用。

from airtest.core.ios.ios import TIDevice
print(TIDevice.ps(udid))

三、完整演示案例

综合上述的内容,我们用一个小小的案例来阐述一下使用的大概流程是怎么样的吧。可以看到,我们可以直接可以利用接口实现先装包 - 测试 - 测试完后直接卸载包体这一个流程。

参考代码:

# -*- encoding=utf8 -*-
__author__ = "Airtest"

from airtest.core.api import *
from airtest.core.ios.ios import TIDevice
auto_setup(__file__)

from poco.drivers.ios import iosPoco
poco = iosPoco()

#获取电脑所连接的iOS设备udid
devices = TIDevice.devices()
udid = devices[0]

# 安装测试包体
TIDevice.install_app(udid, r"./simpletest_resign.ipa")
sleep(3.0)

#此时查询一遍用户安装应用,确保app安装成功
print(TIDevice.list_app(udid, "user"))

#将刚下载好的应用打开
TIDevice.start_app(udid,'com.163.itest.h12')
sleep(2.0)

#输出当前设备的进程应用有哪些
print("当前设备上开启的进程有:{}".format(TIDevice.ps(udid)))

#进行简单测试
poco("点击测试").click()
touch(Template(r"tpl1722395968270.png", target_pos=8, record_pos=(0.0, 0.037), resolution=(750, 1334)))

#输入内容
poco("TextField").click()
text("Airtest")

#完成测试退出应用
TIDevice.stop_app(udid,'com.163.itest.h12')
sleep(3.0)

#将测试包体卸载
TIDevice.uninstall_app(udid,'com.163.itest.h12')

#此时再查询一遍用户安装应用,确保app卸载成功
print(TIDevice.list_app(udid, "user"))

四、小结

这节课我们主要是介绍了 Airtest 所封装好的 tidevice 一些接口以及他们所展现的效果:

1、list_app :列出手机上安装的应用列表,支持对类型进行筛选,包括 user/system/all

2、install_app :安装 ipa 包,支持本地路径或 URL

3、uninstall_app:卸载 bundle_id 对应的包体

4、start_app :启动 bundle_id 对应的包体

5、stop_app :停止 bundle_id 对应的包体

6、ps :获取当前的进程列表

通过上述的封装接口,我们可以对电脑本地连接的 iOS 设备实现一整个装包测试的流程,当然,同学们也可以根据自己的需求去封装更多有关 Airtest 或者是 tidevice 的相关接口,我们也欢迎大家投稿一些自己封装好的函数、接口等,大家可以一起分享学习~

同时如果大家在使用过程中有一些新的使用方式或者遇到了问题,又或者有任何想要深入了解的知识点,欢迎在官方交流群(526033840)里告诉我们或者提交 issue。


AirtestIDE 下载:airtest.netease.com/\
Airtest 教程官网:airtest.doc.io.netease.com/\
搭建企业私有云服务:airlab.163.com/b2b

官方答疑 Q 群:526033840

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册