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

此文章来源于项目官方公众号:“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"))

image

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")

image

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")

image

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))

image

三、完整演示案例

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

参考代码:

# -*- 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

posted @ 2024-08-01 10:41  AirtestProject  阅读(76)  评论(0编辑  收藏  举报