怎样在iOS手机上进行自动化测试

Airtest支持iOS自动化测试,在Mac上为iOS手机部署iOS-Tagent之后,就可以使用AirtestIDE连接设备,像连接安卓设备一样,实时投影、控制手机。iOS测试不仅限于真机测试,iOS模拟器也可以进行。Mac端上部署完成后还可以提供给同一局域网内的windows上远程连接使用。同时支持airtest图像识别和poco UI检索。

本文介绍iOS自动化测试的部署过程,提供一个简单的测试脚本,列举了iOS测试过程中常见的问题。

同时,我也把他也给我准备了一份软件测试视频教程(含接口、自动化、性能等),需要的可以直接在下方观看,或者直接关注VX公众号:互联网杂货铺,免费领取

软件测试视频教程观看处:

自动化测试开发教程天花板,27天速成,从入门到就业,比你盲目自学好多了,允许白嫖!

功能支持

  • 支持AirtestIDE连接,实时控制 iPhone
  • 支持基本操作如启动app、点击、滑动、输入、截图等等操作
  • 支持控件检索技术Poco和图像识别
  • 自动化脚本录制、一键回放、报告查看等基本功能
  • 支持真机或者模拟器

安装部署

版本需求:

  • Mac Xcode ≥ 9.3
  • iPhone iOS ≥ 9.3
  • 在 9.3≤iOS≤10时,由于基于旧版xcode SDK,建议使用Xcode 版本≤10.1来启动iOS-Tagent,否则会出现手机截屏不全的问题。

部署流程

1.在Mac下载 iOS-Tagent ,使用 Xcode 启动 Test, 具体启动过程可参考https://github.com/AirtestProject/iOS-Tagent 。当Xcode的log窗口输出下图信息的时候,就意味着部署成功了。

2.启动代理,在命令行下执行iproxy 8100 8100运行代理后,可以在浏览器打开 http://127.0.0.1:8100/inspector ,查看iOS设备是否能成功连接。

  • iproxy是usbmuxd附带的一个小工具,它的作用是将设备的某个端口映射到电脑的某个端口。mac下可以通过brew安装 brew install usbmuxd。
  • iproxy 8100 8100意思就是将手机的8100端口,映射到电脑的8100端口上。这样我们就能通过访问电脑的8100端口来访问到手机了。

3.在 AirtestIDE 的设备窗口,输入地址:http://127.0.0.1:8100 或 http://x.x.x.x(MAC IP):8100

点击Connect按钮即可连接iOS设备,如图:

支持Xcode中的iOS模拟器

Xcode中的iOS Simulator模拟器部署过程和真机一样,但是可以省略步骤2,不需要另外执行proxy。

当Xcode的log窗口看到下面内容的时候,就可以直接用地址 http://x.x.x.x:8100 进行连接了,也就是log里显示出来的ServerURLHere中的地址:

WebDriverAgentRunner-Runner[xxx:xxx] ServerURLHere->http://x.x.x.x:8100<-ServerURLHere

支持Windows连接

我们同样能够在Windows上连接一个远程的iOS设备,但是依然需要有Mac电脑与Xcode环境。首先按照上文的部署教程在Mac上启动iOS-Tagent之后,不再使用iproxy启动代理,而是改用 wdaproxy。因为iproxy只支持本机端口的映射,而wdaproxy能够支持远程IP映射,这意味着可以在第二部PC上,通过访问ip的方式访问到Mac电脑上连接的iOS设备。

通过brew install openatx/tap/wdaproxy安装好wdaproxy

使用方法与iproxy一致,wdaproxy 8100 8100,或者不填写端口也可以,默认将会使用8100:

开始测试

iOS 的测试和其他设备差不多,支持图像识别和UI检索,下面简单介绍一个iOS测试例子:

  1. 连接设备
  2. 点击home键
  3. 截屏
  4. 执行滑动操作
  5. 使用poco点击app Safari
  6. 使用poco点击浏览器的搜索框,获取焦点
  7. 在搜索框输入“airtest”
  8. 在搜索页面往下滑动
  9. 判断是否存在airtest官网地址
from airtest.core.api import *
from poco.drivers.ios import iosPoco
poco = iosPoco()auto_setup(__file__)
connect_device("ios:///x.x.x.x:8100")
keyevent("HOME")
snapshot()
swipe(Template(r"tpl1561985939879.png", record_pos=(0.356, -0.174), resolution=(750.0, 1334.0)), vector=[-0.685, 0.0481])poco("Safari").click()
poco("URL").click()
text("airtest")poco("People also search for").swipe([-0.0541, -0.4206])
exists(Template(r"tpl1560844284543.png", record_pos=(-0.292, 0.688), resolution=(750, 1334)))

常见问题

如何在模拟器安装应用

把xx.ipa 改成xx.zip,解压得到xx.app
打开模拟器, 在终端运行 xcrun simctl install booted xx.app
tips: 不可以把真机 app 包安装在iOS模拟器上,真机的app是基于arm的,而模拟器是运行在 X86 指令集上的,强行安装会导致闪退的问题。

如何进行iOS多机测试

目前暂未开放iOS多机测试功能,敬请期待

Api 支持状况

请注意,iOS设备与Android设备有很大的不同,以下通用的 Airtest 的 API 在iOS上都是支持的:

start_app: OK
stop_app: OK
snapshot: OK
home: OK
touch: OK
swipe: OK
text: OK
wait: OK
exists: OK
find_all: OK
assert_exists: OK
assert_not_exists: OK

但是以下API是不支持的:

wake: 暂未支持 (考虑用home方法替代)
keyevent: 只支持home 事件
clear_app: 暂未支持
install: 暂未支持
uninstall: 暂未支持

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mediapipe流水线分析 二

目标检测 Graph 一 流水线上游输入处理 1 TfLiteConverterCalculator 将输入的数据转换成tensorflow api 支持的Tensor TfLiteTensor 并初始化相关输入输出节点 &#xff0c;该类的业务主要通过 interpreter std::unique_ptrtflite::Interpreter interpreter_ nullptr; 实现…

js原型链

什么叫原型链 原型链是js中的核心&#xff0c;原型链将各个属性链接起来&#xff0c;在原型链上面定义&#xff0c;原型链上的其他属性能够使用&#xff0c;原型链就是保证继承 原型链区分 原型链分为显式原型和隐式原型 显式原型&#xff1a;只有函数和构建函数才有显式原型…

Spark 新特性+核心回顾

Spark 新特性核心 本文来自 B站 黑马程序员 - Spark教程 &#xff1a;原地址 1. 掌握Spark的Shuffle流程 1.1 Spark Shuffle Map和Reduce 在Shuffle过程中&#xff0c;提供数据的称之为Map端&#xff08;Shuffle Write&#xff09;接收数据的称之为Reduce端&#xff08;Sh…

人工智能(AI)是一种快速发展的技术,其未来发展前景非常广阔。

人工智能&#xff08;AI&#xff09;是一种快速发展的技术&#xff0c;其未来发展前景非常广阔。以下是一些关于AI未来的可能发展方向和就业前景的详细说明&#xff1a; 1.机器学习工程师&#xff1a;机器学习是AI的核心技术之一&#xff0c;它涉及到从数据中自动学习模式并进…

智能网联汽车基础软件信息安全需求分析

目录 1.安全启动 2.安全升级 3.安全存储 4.安全通信 5.安全调试 6.安全诊断 7.小结 1.安全启动 对于MCU&#xff0c;安全启动主要是以安全岛BootROM为信任根&#xff0c;在MCU启动后&#xff0c;用户程序运行前&#xff0c;硬件加密模块采用逐级校验、并行校验或者混合校…

基于工业无线DTU的空气污染监测防治方案

​秋冬季是我国大气污染天气的高发、频发期&#xff0c;也是大气污染防治的关键期、敏感期。针对空气质量的监测和防治&#xff0c;可以利用佰马工业无线DTU&#xff0c;搭建分布式大气传感器监测网络&#xff0c;实现对广域空气质量、成分、变化的实时监测&#xff0c;从而实现…

php加密解密的用法(对称加密,非对称加密)

加密和摘要的区别 ***摘要&#xff1a;是从已知的数据中&#xff0c;通过摘要计算出一个值&#xff0c;一个数据对应一个或多个摘要的值 *** 比如&#xff1a;md5 和 sha1 sha256 hash 就是得到一个特定的值 &#xff0c;同一个数据得到的md5 是一样的&#xff0c;不会改变的 比…

【广州华锐互动】气象卫星监测AR互动教学软件为气象学习带来更多乐趣

由VR制作公司广州华锐互动开发的气象卫星监测AR互动教学软件是一款结合了增强现实(AR)技术与气象监测技术的教育软件。它通过直观、互动的方式&#xff0c;帮助学生更好地理解和掌握气象监测的基本知识和技能。本文将从气象卫星监测AR互动教学软件的应用场景、优势分析、实际意…

智安网络|探索人机交互的未来:自然语言处理的前沿技术

自然语言处理是人工智能领域中研究人类语言和计算机之间交互的一门学科。它涉及了语言的理解、生成、翻译、分类和摘要等多个方面。随着人们对自然语言处理的重视和需求不断增长&#xff0c;成为了热门的研究方向。 首先&#xff0c;我们需要了解自然语言处理的基本概念。自然…

网络安全-零基础小白自学要点

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高&#xff1b; 二、则是发展相对成熟…

【网络管理——操作系统与安全】

文章目录 一、安装WindowsServer操作系统1、新建虚拟机2、进入Windows虚拟机进行相关配置 二、Windows用户账户管理与配置1、创建用户账户2、创建用户组 三、Windows操作系统的本地安全策略设置1、配置用户账户密码策略2、配置用户账户锁定策略3、配置组策略安全选项4、配置审核…

CVE-2023-0179-Nftables整型溢出

前言 Netfilter是一个用于Linux操作系统的网络数据包过滤框架&#xff0c;它提供了一种灵活的方式来管理网络数据包的流动。Netfilter允许系统管理员和开发人员控制数据包在Linux内核中的处理方式&#xff0c;以实现网络安全、网络地址转换&#xff08;Network Address Transl…

OmniFocus Pro for Mac(GTD时间管理软件) OmniFocus Mac版

OmniFocus Pro 3 for Mac 中文激活版是一款功能强大且灵活的 GTD 时间管理工具&#xff0c;可为您提供无干扰的环境&#xff0c;帮助您可以轻松地从邮件&#xff0c;消息&#xff0c;Safari 和任何其他第三方应用程序中安排任务&#xff0c;编写备注和剪辑信息。您可以快速轻松…

Intel oneAPI笔记(4)--jupyter官方文档(Unified Shared Memory)学习笔记

前言 本文是对jupyterlab中oneAPI_Essentials/03_Unified_Shared_Memory文档的学习记录&#xff0c;主要包含对统一共享内存的讲解 USM概述 USM (Unified Shared Memory)是SYCL中基于指针的内存管理。对于使用malloc或new来分配数据的C和C程序员来说应该很熟悉。当将现有的C…

Apple :苹果将在明年年底推出自己的 AI,预计将随 iOS 18 一起推出

本心、输入输出、结果 文章目录 Apple &#xff1a;苹果将在明年年底推出自己的 AI&#xff0c;预计将随 iOS 18 一起推出前言三星声称库克相关图片弘扬爱国精神 Apple &#xff1a;苹果将在明年年底推出自己的 AI&#xff0c;预计将随 iOS 18 一起推出 编辑&#xff1a;简简单…

论文阅读:Ensemble Knowledge Transfer for Semantic Segmentation

论文地址&#xff1a;https://ieeexplore.ieee.org/document/8354272 项目及数据地址&#xff1a;https://github.com/ishann/aeroscapes 发表时间&#xff1a;2018年5月7日 语义分割网络通常以严格监督的方式学习&#xff0c;即它们在相似的数据分布上进行训练和测试。在域转…

电机应用-舵机

目录 舵机 分类 结构 工作原理 控制原理 参数 舵机基本控制实验&#xff08;MG996R舵机&#xff09; MG996R舵机规格 硬件电路 TIM4配置 测试环节 舵机 分类 按照舵机的控制电路分类&#xff1a;模拟舵机和数字舵机。 模拟舵机和数字舵机的机械结构是完全相同的。 …

基于ssm的校园快递物流管理系统(java+jsp+ssm+javabean+mysql+tomcat)

博主24h在线&#xff0c;想要源码文档部署视频直接私聊&#xff0c;9.9拿走&#xff01; 基于javawebmysql的ssm校园快递物流管理系统(javajspssmjavabeanmysqltomcat) 运行环境&#xff1a; Java≥8、MySQL≥5.7、Tomcat≥8 开发工具&#xff1a; eclipse/idea/myeclipse/s…

【C++】STL 标准模板库 ① ( STL 简介 | STL 基本概念 | STL 主要内容 )

文章目录 一、STL 简介1、STL 概念2、STL 主要内容 二、STL 代码示例 一、STL 简介 1、STL 概念 C 语言 的 STL " 标准模板库 " 英文全称 " Standard Template Library " , STL 是一套强大的 C 库 , 其中包含了各种通用的 数据结构和算法 , 如 : 向量、列…

谷歌提出 AGI 完整路线图:目前 ChatGPT 只处于 AGI 的第一阶段

本心、输入输出、结果 文章目录 谷歌提出 AGI 完整路线图:目前 ChatGPT 只处于 AGI 的第一阶段前言谷歌 DeepMind 发布 AGI 分级框架发展 AGI 必须遵循6个基本原则什么是AGI图灵测试详解六大原则AGI 的五大发展过程阶段原文参考弘扬爱国精神谷歌提出 AGI 完整路线图:目前 Cha…