软件测试 —— Airtest的iOS实用接口介绍 (建议收藏)

news2024/11/24 21:07:36

1. 前言
前段时间Airtest更新了1.3.0.1版本,里面涉及非常多的iOS功能新增和改动,今天想详细跟大家聊一下里面的iOS设备接口。

PS:本文示例均使用本地连接的iOS设备,Airtest版本为1.3.0.1 。

2. 安装接口:install、install_app
Airtest支持通过本地.ipa文件安装APP,也支持通过下载链接安装APP,以本地ipa文件为例:

# -*- encoding=utf8 -*-
__author__ = "AirtestProject"
​
from airtest.core.api import *
auto_setup(__file__)
​
install(r"D:\my_popo\email.ipa") 

 当然上述装包功能,我们用 device().install_app 也可以实现:

# -*- encoding=utf8 -*-
__author__ = "AirtestProject"
​
from airtest.core.api import *
auto_setup(__file__)
​
dev = device()
dev.install_app(r"D:\my_popo\email.ipa") 

3. 卸载接口:uninstalluninstall_app

卸载接口与安装接口类似,可以直接 uninstall ,也可以通过 device().uninstall_app 来卸载指定APP,这里以 uninstall_app 为例:

# -*- encoding=utf8 -*-
__author__ = "AirtestProject"
​
from airtest.core.api import *
auto_setup(__file__)
​
dev = device()
dev.uninstall_app("com.netease.mailmaster")

当然换成 install 接口也是一样的效果:

# -*- encoding=utf8 -*-
__author__ = "AirtestProject"
​
from airtest.core.api import *
auto_setup(__file__)
​
uninstall("com.netease.mailmaster")

 4. 列出所有APP的接口:list_app
我们可以用 list_app 列出iOS设备的APP列表,并且支持在 list_app("") 里传入要列出的app类型,all、system、user ,分别对应全部APP、系统APP、用户安装的APP,这里以列出用户安装的APP信息为例:

# -*- encoding=utf8 -*-
__author__ = "AirtestProject"
​
from airtest.core.api import *
auto_setup(__file__)
​
dev = device()
​
#列出并打印用户安装的APP
print("---------以下是用户安装的APP的信息-----------")
user_app = dev.list_app("user")
print(user_app)

PS:在1.3.0.1版本的Airtest里面使用该接口,会报一个 TypeError: list_app() got an unexpected keyword argument 'type' 的错误,我们将在后续的版本中修复它。

5. 剪切板功能:get_clipboard、set_clipboard
新版Airtest还支持设置iOS设备的剪切板,我们可以从一个简单的示例来查看这个功能:

设置剪切板内容
获取并打印剪切板内容
粘贴剪切板内容

# -*- encoding=utf8 -*-
__author__ = "AirtestProject"
​
from airtest.core.api import *
auto_setup(__file__)
​
#设置剪贴板内容
set_clipboard("content")
​
#获取并打印剪切板内容
text = get_clipboard()
print("当前剪切板内容:" + text)
​
#单击唤出粘贴按钮
touch([50,310])
​
#粘贴剪切板内容
touch(Template(r"tpl1692173001410.png", record_pos=(-0.38, -0.788), resolution=(750, 1624)))
​

6. 小结
今天的iOS接口就介绍到这里,下期我们可以一起看看Airtest里面封装的tidevice接口,能带来哪些iOS功能。如果对我们的内容感兴趣的话,别忘了持续关注我们哟~

下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

 

资料获取方式 :

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

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

相关文章

PAT 1130 Infix Expression

个人学习记录,代码难免不尽人意。 Given a syntax tree (binary), you are supposed to output the corresponding infix expression, with parentheses reflecting the precedences of the operators. Input Specification: Each input file contains one test ca…

煤质软化:提升采矿效率的关键技术

煤质软化:提升采矿效率的关键技术 随着煤炭的广泛应用和能源需求的增长,对煤炭采矿和利用的要求也不断提高。传统的煤炭采矿方法往往面临一些困难和挑战,如厚层、高硬度以及强抗压性等问题,导致采掘效率低下、操作困难&#xff0c…

如何搭建接口自动化测试框架?

经过了一年多的接口测试工作,旧的框架也做了一些新的调整,删除了很多冗余的功能,只保留了最基本的接口结构验证、接口回归测试、线上定时巡检功能。 一、框架的演进 界面 UI 做了优化,整个框架的画风突然不一样了(人…

1688API技术解析,实现按图搜索1688商品(拍立淘)

一种可能的解决方案是使用图像识别和相似度匹配的算法。您可以通过将输入的图片与1688上的商品图片进行比对,找出最相似的商品。这涉及到图像特征提取、相似度计算以及数据库匹配等技术。您可以使用开源的图像处理库(如OpenCV)来进行图像处理…

38. 连续签到领金币数

文章目录 题目需求思路一实现一题目来源 题目需求 用户每天签到可以领1金币,并可以累计签到天数,连续签到的第3、7天分别可以额外领2和6金币。 每连续签到7天重新累积签到天数。 从用户登录明细表中求出每个用户金币总数,并按照金币总数倒…

无涯教程-分类算法 - Python实现函数

为了在Python中实现SVM,无涯教程将从标准库导入开始,如下所示- import numpy as np import matplotlib.pyplot as plt from scipy import stats import seaborn as sns; sns.set() 接下来,从sklearn.dataset.sample_generator创建具有线性可…

材料空间「填空解谜」:MIT 利用深度学习解决无损检测难题

内容一览:材料检测在工程、科学及制造业中扮演着至关重要的角色。传统的材料检测方法,例如切割和化学试剂检测具有破坏性,同时较为耗费时间和资源。近期,MIT 科学家利用深度学习开发了一种技术,能够填补缺失信息&#…

迁移学习:实现快速训练和泛化的新方法

文章目录 迁移学习的原理迁移学习的应用快速训练泛化能力提升 迁移学习的代码示例拓展应用与挑战结论 🎉欢迎来到AIGC人工智能专栏~迁移学习:实现快速训练和泛化的新方法 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒🍹✨博客主页:IT陈寒的博…

服务网格实施周期缩短 50%,丽迅物流基于阿里云 ACK 和 ASM 的云原生应用管理实践

作者:王夕宁、 刘强、 华相 公司介绍 丽迅物流是百丽旗下专注于时尚产业、为企业提供专业物流及供应链解决方案的服务商。其产品服务主要包括城市落地配、仓配一体、干线运输及定制化解决方案。通过自研智能化物流管理平台,全面助力企业合作集约化发展…

C++中前置++和后置++的详细讲解

参考链接(链接讲的很全):C前置和后置的区别 对于迭代器和其他模板对象使用前缀形式 (i) 的自增, 自减运算符.,理由是 前置自增 (i) 通常要比后置自增 (i) 效率更高。 class Age { public: Age& operator() //前置 {…

c++ std::ref

ref 对于函数式编程(如 std::bind),是对参数直接拷贝,而不是引用,std::ref的引入就是为了解决一些传参问题 ref是个函数模板,用来构建一个reference_wrapper对象并返回,该对象拥有传入的elem变…

day-33 代码随想录算法训练营(19) 贪心part03

1005.K次取反后最大化的数组和 思路一:求出正负数的个数,根据k值来进行取反 134.加油站 思路:考虑总油量和当前剩余油量,同时遍历两个数组,当前剩余油量小于0时,说明在 i 之前都无法出发。 135.分发糖果 …

yml基本语法与支持的数据格式

一、yml基本语法 1、yml文件以缩进代表层级关系 2、缩进不允许使用tab只能使用空格 3、空格的个数不重要,只要相同层级的元素左对齐即可 4、大小写敏感 5、数据格式为,名称:(空格)值 二、yml支持的数据格式 1、对象:键值对的集合(key:…

EDAS系统提交 | 编译报错显示 fonttype: Font DejaVuSans is of type Type 3.

目录 1. 问题:fonttype: Font DejaVuSans is of type Type 3. 2. 原因及解决:用python的matplotlib画的图片转出的pdf有问题,包含Type 3字体。 3. 具体解决过程:在用python代码画图时,添加一行代码,重新…

第八周第一天学习总结 | MySQL入门及练习学习第三天

实操练习 1.创建一个名为 lianxi 的数据库 2.在 lianxi 库内创建一个名为 xinxi 的数据表要求如下: 包含信息:编号,姓名,备注,籍贯,部门,公司。 3.给xinxi表添加相应信息: 4.查询…

kafka复习:(22)一个分区只能被消费者组中的一个消费者消费吗?

默认情况下,一个分区只能被消费者组中的一个消费者消费。但可以自定义PartitionAssignor来打破这个限制。 一、自定义PartitionAssignor. package com.cisdi.dsp.modules.metaAnalysis.rest.kafka2023;import org.apache.kafka.clients.consumer.internals.Abstrac…

【环境配置】Android-Studio-OpenCV-JNI以及常见错误 ( 持续更新 )

最近一个项目要编译深度学习的库,需要用到 opencv 和 JNI,本文档用于记录环境配置中遇到的常见错误以及解决方案 Invalid Gradle JDK configuration found failed Invalid Gradle JDK configuration foundInvalid Gradle JDK configuration found. Open…

【Acwing905】区间选点贪心策略超清晰证明!!包含题解

题目描述 贪心策略 首先按右端点对区间进行排序 然后从左到右遍历每一个区间,如果这个区间还没有选中的点,那么就选择这个区间的右端点,否则就pass掉这个区间 举一个栗子 贪心策略证明 假设最少的选点数为:ans 利用上述贪心策…

【JUC基础】JUC入门基础

目录 什么是JUC线程和进程锁传统的 synchronizedLock 锁Synchronized 与 Lock 的区别 生产者和消费者问题Synchronized 版Lock版Condition 的优势:精准通知和唤醒线程 8 锁现象问题1:两个同步方法,先执行发短信还是打电话?问题2&a…

代码随想录刷题笔记 (python版本) 持续更新.....

代码随想录刷题笔记总结: https://www.programmercarl.com/ 个人学习笔记 如有错误欢迎指正交流1. 数组 1.1 理论基础 详细介绍:https://www.programmercarl.com/%E6%95%B0%E7%BB%84%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html 数组下标都是从0开始的。数组内存空间的地址是…