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

news2024/11/14 5:37:52

一、前言

上节课我们分享了一批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。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1966281.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

早得农元早享“富”!农元又双叒叕涨了!

农元升值设定的唯一途径,仅随着用户在平台每次的购物而升值,未来农元的价值升值甚至会达到几千、上万元人民币,真正实现了购物乐趣与财富增长的双重盛宴,让每一位平台用户都能享受到数字经济时代带来的红利。 快从消费者变为经营者…

警惕!六西格玛培训中不可不知的六大陷阱

近年来,随着六西格玛的普及,一些常见的培训陷阱也逐渐浮出水面,让不少求学者误入歧途。本文,深圳天行健企业管理咨询公司旨在为大家揭示六西格玛培训中的六大常见陷阱,真正掌握六西格玛的精髓。 陷阱一:速成…

KMP入门与算法题实践

基础知识 参考视频 下面是两个b站上个人借鉴学习的视频 第一个视频用来快速理解KMP: 【最浅显易懂的 KMP 算法讲解】 https://www.bilibili.com/video/BV1AY4y157yL/?share_sourcecopy_web&vd_sourced124eda224bf54d0e3ab795c0b89dbb0 第二、三个视频用来理…

vue3学习day01-vue3的优势、新的脚手架工具create-vue、创建vue3项目、vue3的项目文件内容、插件变化

1、vue3的优势 (1)更易维护:组合式api,更好的TypeScript支持 (2)更快的速度:重写diff算法,模版编译优化,更高效的组件化 (3)更小的体积&#x…

MES系统:生产实时监控与智能反馈,驱动制造业智能化升级

MES系统(Manufacturing Execution System,制造执行系统)通过集成多种技术手段和管理模块,实现了生产过程的实时监控与反馈。以下是实时监控与反馈具体实现的详细分析: 一、实时监控 1. 数据采集 传感器与设备集成&am…

nrm: npm 镜像源管理工具

nrm 是 “npm registry manager” 的缩写,是一个 npm 镜像源管理工具,用于在不同的 npm 镜像源之间快速切换,帮助开发者根据需要选择不同的源来加速包的下载或解决网络问题。 常用命令 详细介绍 以下是 nrm 的一些主要特性和用法&#xff1…

精美UI三方用户中心 新版QRuser用户中心主题 | 魔方财务模板

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 新版QRuser用户中心主题 | 魔方财务模板 本主题支持魔方财务3.5.7版本!可自由切换魔方财务3.5.7版本与其他版本。 本主题基于官方default开发,主要面向企业&…

Java语言程序设计——篇十一(1)

🌿🌿🌿跟随博主脚步,从这里开始→博主主页🌿🌿🌿 欢迎大家:这里是CSDN,我的学习笔记、总结知识的地方,喜欢的话请三连,有问题可以私信&#x1f33…

【数据结构-前缀哈希同余运算】力扣974. 和可被 K 整除的子数组

给定一个整数数组 nums 和一个整数 k ,返回其中元素之和可被 k 整除的非空 子数组 的数目。 子数组 是数组中 连续 的部分。 示例 1: 输入:nums [4,5,0,-2,-3,1], k 5 输出:7 解释: 有 7 个子数组满足其元素之和可…

仿真入门!Hypermesh焊接处理方法

某抗硫球阀为对焊端结构,需要焊接袖管。焊接过程产生的高温会造成热影响区域,尤其接头区域产生变形及残余应力,同时O型密封圈处的温度也是焊接生产比较关心的问题。因此,为弄清袖管焊接过程中温度场规律,给实际焊接生产…

RAID 级别:0、1、5、6、10 和 50 傻傻分不清?那是你没看过这篇

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部 早上好,我的网工朋友。 大家都知道,无论是企业级服务器还是个人计算机,数据的安全性和可用性都是至关重要的。…

通配符HTTPS证书快速申请流程

通配符HTTPS证书是一种特别类型的HTTPS证书,它可以为一个主域名及其下级所有子域名提供安全加密。这对于拥有多个子域名的企业来说非常有用,因为它简化了管理流程,并降低了成本。具体申请流程: 注册账号填写230919注册码即可获得…

【C++】实验十四

题目: 1、编写程序,输入a,b,c,检查a,b,c是否满足以下条件,如不满足,由cerr输出有关错误信息。 2、从键盘输入一批数值。要求保留3位小数,在输出时上下行小数…

成都夏光汝网络科技有限公司抖音小店品质与创新的完美结合

在数字经济蓬勃发展的今天,电商行业以其独特的魅力和无限的可能性,正深刻改变着我们的消费习惯与生活方式。其中,抖音小店作为短视频与电商结合的典范,更是以其独特的优势迅速崛起,成为广大消费者喜爱的购物渠道。成都…

企业版邮箱如何确保全球畅邮

企业版邮箱如何确保全球畅邮呢?一邮箱通过多项国际隐私认证,加密技术保障数据安全。二是全球网络部署确保邮件畅通。三提供灵活价格方案,支持用户定制化和跨平台。四是第三方工具集成,提升效率。 一、Zoho邮箱的安全保障 1.1 高…

【Stable Diffusion】影楼再也赚不到你的钱,让SD帮你“拍摄”艺术写真

前言 点击上方「蓝字」关注我们 你能看出下图是一张经过AI技术处理过的写真吗? 通过原图AI合成,简单几步操作,一个无需摄影无需后期的0成本摄影工作室就诞生了。 今天就来教大家怎么用Stable Diffusion做出这样的写真效果。 操作过程 第一…

IDEA使用Docker打包镜像

IDEA使用Docker打包镜像 Docker服务器 想要使用idea直接打包docker镜像,需要一个docker服务,你可以安装windows版本的docker,或者安装Linux版本的docker到虚拟机中,这个根据个人想法即可。本篇文章使用的是Linux! W…

一图搞懂,全流程项目管理实践地图,驱动:市场-研发-售后

如何共同协作驱动 市场研发售后? 软件项目交付需要一段时间和长周期,而由于产品研发团队前与市场部门脱节、后又与售后支撑服务团队脱节的话,整体上会加剧项目管理的成本和内部跨部门协作的难度。 如何高效共同协作驱动 市场运营产品研发售…

C# Solidworks二次开发------设置按键打开模型查询

一、代码 public void Open_File(string FileNmae) {Process.Start("explorer.exe", FileNmae); }Open_File("路径"); 二、内容 这个代码很简单,我使用其主要的作用是设置一个按键,可以快速的查看我们已生成的三维模型&#xff0…

2000-2023年上市公司融资约束指数-KZ指数(含原始数据+计算结果)

2000-2023年上市公司融资约束指数-KZ指数(含原始数据计算结果) 1、时间:2000-2023年 2、来源:上市公司年报 3、指标:证券代码、证券简称、统计截止日期、是否剔除ST或*ST或PT股、是否剔除上市不满一年、已经退市或被…