iOS客户端自动化UI自动化airtest+appium从0到1搭建macos+脚本设计demo演示+全网最全最详细保姆级有步骤有图

Android客户端自动化UI自动化airtest从0到1搭建macos+脚本设计demo演示+全网最全最详细保姆级有步骤有图-CSDN博客

避坑系列-必读:

不要安装iOS-Tagent ,安装appium -这2个性质其实是差不多的都是为了安装wda。注意安装appium最新版本,安装完,git下载最新版本的wda(v8.1.0版本-source压缩包解压,代码替换原git下载的wda文件夹下的全部文件 否则各种源码语法报错

一、基础环境

1. 安装jdk 选择jdk8 如果下载高版本 可能不匹配会失败

下载.dmg文件 

苹果电脑 | macOS | jdk1.8 | 环境变量配置_jdk1.8 mac-CSDN博客

Java Downloads | Oracle

jdk环境变量配置

找到java home

qa@mac ~ % cd /Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home

qa@mac ~ % vim .bash_profile

配置内容如下:

#JAVA

JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home

PATH=$JAVA_HOME/bin:$PATH:.

CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.

export JAVA_HOME

export PATH

export CLASSPATH

qa@mac ~ % source ~/.bash_profile  刷新配置文件

qa@mac ~ % java -version       

如果安装了多个jdk 则删除 

sudo rm -rf /Library/Java/JavaVirtualMachines/jdk-22.jdk/Contents/Home 

$JAVA_HOME   显示

/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home

2. 下载airiest

Airtest Project

3. 下载appium

https://github.com/appium/appium-desktop/releases

下载 Appium-Server-GUI-mac-1.22.3-4.dmg

4. MAC修改终端左侧显示的用户名

sudo scutil --set HostName Tmp

Tmp 就是你要修改的名字, 比如, 你要改成abc, 那么 执行下面的命令

sudo scutil --set HostName mac 

重启终端生效

5. 下载xcode 

打开App Store搜索xcode

6. 安装homebrew

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

下载源选择阿里巴巴

MAC安装brew保姆级教程_mac brew-CSDN博客

7. 安装python3.6.8,版本太高会导致airtest安装失败,下载地址:https://www.python.org/downloads/release/python-368/

我安装的Python Releases for macOS | Python.org 3.9.0版本

添加环境变量,执行open ~/.bash_profile,加入

     alias python="/python安装路径/python3.6"
     alias pip="/python安装路径/pip3.6"

     保存后执行source ~/.bash_profile && python -V && pip -V检测安装版本是否成功

如遇:排除错误 pip Command Not Found
1. 检查是否安装了pip

在Mac和Linux上,您可以使用以下命令检查是否安装了pip

python3 -m pip --version 
如果pip安装正确,输出如下

pip 24.0 from /Users/qa/Library/Python/3.9/lib/python/site-packages/pip (python 3.9)

如果未安装pip,您可以按照此处相应操作系统的安装步骤进行操作

2. 将pip升级到最新版本

如果pip仍然不工作,请尝试将pip升级到最新版本:

python3 -m pip install --upgrade pip

8. 安装OpenCV:执行pip3 install opencv-contrib-python

9. 安装poco:执行pip3 install pocoui

10. 下载carthage

brew install carthage


二、iOS端环境配置

参考资料:iOS真机安装WebDriverAgent图文详解-腾讯云开发者社区-腾讯云

1. 安装iOS-Tagent

git仓库下载代码

git clone https://github.com/AirtestProject/iOS-Tagent.git 

下载上面的代码后,找到WebDriverAgent.xcodeproj这个文件,各版本位置可能会不一样,如果我提供的路径找不到,可以搜索下文件。/Users/qa/Desktop/2024/code/iOS-Tagent

2. 打开项目后,更改红框中两个文件的相关信息,team可以使用个人苹果id账号,Bundle identifier需要更改一下,不重复就可以了,我是直接在后面加点后缀

3. 如果是个人免费版的证书,还需要修改下WebDriverAgent的BundleID,随便加后缀,不要跟别人重复就好,这里建议可以加当前时间戳,比如:202106290903,如果是付费版开发者证书则不需要这步操作。

4. 模拟器-更改完成后,手机用数据连接电脑

点击xcode顶部工具栏的product——Destination,点击自己的手机设备

如遇提升下载iOS17.4 则下载 更新成功后(8个G左右),正常

5. IntegrateApp选择机型 点击Product-Run 出现如图模拟器界面

6. 真机-用数据线连接iPhone至Mac

选择项目,在菜单栏 product -> Scheme -> WebDriverAgentRunner

选择设备,在菜单栏 product -> Destination -> 选择你的真机

启动Test,在菜单栏 product -> Test

7. 各种报错分析:如遇buildFailed 第54行报错

报错信息如下:Parameter of overriding method should be annotated with __attribute__((noescape))

解决办法:在参数前加 __attribute__((noescape))

修改前- (void)measureBlock:(CDUnknownBlockType)arg1;  

修改后- (void)measureBlock:(CDUnknownBlockType)__attribute__((noescape))arg1;  

参考https://www.jianshu.com/p/c536c3b81ac2

8. 再次执行product -> Test 弹框报错

Previous preparation error: Developer Mode disabled. To use 越狱兔的iPhone12 for development, enable Developer Mode in Settings → Privacy & Security.

解决办法:IOS开发之——Developer Mode DIsabled-CSDN博客

原因:iPhone设备开发者模式已关闭
打开iPhone的设置,搜索隐私与安全性-安全性-开发者模式 默认为关闭 打开

将开发者模式打开后,设备重启

重启设备后,输入密码开启,查看开发者模式是否打开

如遇The request to open "com.facebook.WebDriverAgentRunner20240401yutu.xctrunner" failed.

去iPhone -VPN与设备管理-信任证书

Xcode中设备恢复正常状态,再次执行product -> Test 弹框报错

iPhone端出现白色文字Automation Running  Hold both  volume buttons to stop

xcode控制台出现日志:

Test Case '-[UITestingUITests testRunner]' started.

    t =     0.00s Start Test at 2024-03-27 15:04:36.614

    t =     0.00s Set Up

ServerURLHere->http://169.254.168.151:8100<-ServerURLHere

每次build iPhone端会自动安装WebDriverAgent

9. 各种报错分析-Thread 1: "-[__NSXPCInterfaceProxy_XCTMessagingChannel_RunnerToDaemon _XCT_exchangeProtocolVersion:reply:]: unrecognized selector sent to instance 0x28146df90"

无解 看起来是源码的问题。。。。。。

参考资料(一)app自动化测试环境搭建(mac+ios+airtest )_automation running-CSDN博客

换一种方式安装appium

10. 安装appium 安装最新版本

Releases · appium/appium-desktop · GitHub

安装打开appium

11. 打开appium-webdriveragent 我的路径如图

/Applications/Appium Server GUI.app/Contents/Resources/app/node_modules/appium/node_modules/appium-webdriveragent

双击打开WebDriverAgent.xcodeproj

在xcode配置 更改红框中两个文件的相关信息,team可以使用个人苹果id账号,Bundle identifier需要更改一下,不重复就可以了,我是直接在后面加点后缀2024yutu

12. 连接iPhone手机重复步骤678

开启UI Automation,位置在:iPhone手机-设置-开发者-启用UI自动化

13. 安装appium:npm install -g appium

如果有问题那也需要安装 appium docker

安装完毕运行appium

默认端口为4723

在浏览器/airtest输入网页:http://127.0.0.1:4723/status

14. 如遇xcode build失败

解决办法-20240327亲测有效 

[IOS自动化]Xcode build时报错: Cannot link directly with dylib/framework_cannot link directly with dylib/framework, your bi-CSDN博客

解决办法如下:

a. 如果你的appium版本是最新的,直接跳到第3步

否则卸载appium desktop(finder/application里找到app后直接拖到垃圾桶)

b. 下载安装最新的appium desktop: Releases · appium/appium-desktop · GitHub

c. finder/application里找到最新安装的appium app, 右击选择show package contents,定位到WebDriverAgent.xcodeproj所在路径:

参考:/Applications/Appium Server GUI.app/Contents/Resources/app/node_modules/appium/node_modules/appium-webdriveragent

d. 下载最新的WedDriverAgent: ​​​​​​Releases · appium/WebDriverAgent · GitHub

下载Source.code即可

把下载好的WedDriverAgent里的全部内容替换到第三步的路径下(原内容可全部删除)

替换

e. 文件夹双击WebDriverAgent.xcodeproj, xcode自动打开。build成功

iPhone安装完WebDriverAgentRunner-Runner后 在VPN与设备管理信任开发者APP 每次test(build)iPhone都会重新安装wda

15. 通过 Homebrew 安装iproxy

brew install libimobiledevice

16. 运行iproxy

iproxy 8100 8100

启动成功后,可以试着在浏览器访问 http://127.0.0.1:8100/status ,如果访问成功并且可以看到一些json格式的手机信息,即表示启动成功 如果返回为空,可能是因为未安装appium导致的(暂不确定)

启动AirTestIDE,devices-iOS APP Connection处填写 http://127.0.0.1:8100 或者启动appium后填写http://127.0.0.1:4723/status 均可。点击connect

连接成功后AirTest Assistant处点击录制即可针对操作进行脚本录制

17. 如果更换iPhone设备或者断开连接 重新连接手机后需要先启动xcode 

18. 如遇报错 xcode Exiting due to IDE disconnection. 重启iPhone 重启xcode再次test iPhone输入密码即可 Product-Test成功后,iPhone显示界面如下

19. 安装appium-inspector。 git官网下载最新包

打开Appium Server GUI 点击搜索按钮 跳转到Appium inspector的git官网GitHub - appium/appium-inspector: A GUI inspector for mobile apps and more, powered by a (separately installed) Appium server

下载appium-inspector安装包

Releases · appium/appium-inspector · GitHub


                        

参考资料

APP自动化之airtest(一)---环境搭建mac版&安卓真机连接_mac可以跑android手机机进行airtest测试吗-CSDN博客

APP自动化之airtest(二)---ios真机调试_ios-tagent真机调试-CSDN博客

https://blog.51cto.com/u_16213625/8154325

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

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

相关文章

Gitlab CI---could not read username for xxx: no such device or address

0 Preface/Foreword 项目开发中&#xff0c;经常会使用第三方的算法或者功能&#xff0c;那么就需要把对应的repo以子模块的方式添加到当前repo中。 添加命令&#xff1a; git submodule add <URL> 1 问题表现 子模块添加成功&#xff0c;但是GitLab CI阶段&#xff…

基于Python的电商特产数据可视化分析与推荐系统

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 利用网络爬虫技术从某东采集某城市的特产价格、销量、评论等数据&#xff0c;经过数据清洗后存入数据库&#xff0c;并实现特产销售、市场占有率、价格区间等多维度的可视化统计分析&#xff0c;并…

filebox在线文件管理工具V1.11.1.1查分吧修改自用版免费分享[PHP]

* 基于:https://down.chinaz.com/soft/35899.htm * 查分吧 修改自用版今日对外分享(自2016年1.10版本以来一直用他云开发:Web环境即时看效果) * 也可以用于本人很多txt/csv通用查询系统的在线管理后台管理数据 * 默认登陆账号filebox密码nidemima * 修改账号密码:21-22行;获取…

Python人工智能:气象数据可视化的新工具

Python是功能强大、免费、开源&#xff0c;实现面向对象的编程语言&#xff0c;在数据处理、科学计算、数学建模、数据挖掘和数据可视化方面具备优异的性能&#xff0c;这些优势使得Python在气象、海洋、地理、气候、水文和生态等地学领域的科研和工程项目中得到广泛应用。可以…

MySQL进阶-----索引的语法与SQL性能分析

目录 前言 一、索引语法 1.SQL语法 2.案例演示 二、SQL性能分析 三、慢查询日志 1.开启日志 2.测试样例 四、profile详情 1.开启profile 2.profile测试SQL语句 五、explain详情 1.语法结构 2.执行顺序示例&#xff08;id&#xff09; 3.执行性能示例(type) 前言 本…

fastadmin学习04-一键crud

FastAdmin 默认内置一个 test 表&#xff0c;可根据表字段名、字段类型和字段注释通过一键 CRUD 自动生成。 create table fa_test (id int unsigned auto_increment comment ID primary key,user_id int(10) default 0 null…

蓝桥杯物联网遇见的重大BUG及其产生原因和解决方法

BUG列表 1、ADC的RP2显示一直为0&#xff1a;2、LORX_Tx发送数据乱码&#xff1a;3、strcmp比较char a[2] {1, 2}与“12”字符串是否相等板子会死机&#xff1a;4、LORA_Tx和LORA_Rx放一起会接收不到数据&#xff1a;5、RTC获取到静止时间&#xff1a;6、ADC获取RP1和RP2模拟量…

Vue 03 组件通信

Vue学习 Vue 0301 浏览器本地存储localStorageSessionStorage案例 todolist的完善 02 组件自定义事件Custom Events基本使用解绑自定义事件注意事项①② 总结案例 todolist的完善 03 全局事件总线GlobalEventBus案例 todolist的完善 04 消息的订阅与发布案例 todolist的完善 05…

网络原理-传输层-UDP报文结构

本文介绍UDP报文 有很多友友搞不清楚UDP报文的详细结构还有TCP的详细结构,所以专门分开来讲 以免弄混. 首先我们先看一下整个UDP结构,让大家有一个全方面的认识 下面我们来详细解释UDP报 16位源端口号(本机):就是2字节大小,16个二进制位. 16位目的端口号(目的机):也是2字节…

SQL Server 数据库常见提权总结

前面总结了linux和Windows的提权方式以及Mysql提权&#xff0c;这篇文章讲讲SQL Server数据库的提权。 目录 基础知识 权限判定 系统数据库 存储过程 常见系统存储过程 常见扩展存储过程 xp_cmdshell扩展存储过程提权 xp_dirtree写入文件提权 sp_oacreate提权 xp_re…

Linux安装redis(基于CentOS系统,Ubuntu也可参考)

前言&#xff1a;本文内容为实操记录&#xff0c;仅供参考&#xff01; 一、下载并解压Redis 1、执行下面的命令下载redis&#xff1a;wget https://download.redis.io/releases/redis-6.2.6.tar.gz 2、解压redis&#xff1a;tar xzf redis-6.2.6.tar.gz 3、移动redis目录&a…

和数集团董事长唐毅一行参加香港加密峰会

2024年3月26日-27日&#xff0c;和数集团董事长唐毅、UM Company CEO Rubens、QUANTIX CAPITAL风险投资基金CEO Jake一行&#xff0c;参加了亚太地区重要的Web3会议“WOW Summit HongKong 2024”。 UM Company CEO Rubens、和数集团董事长唐毅、QUANTIX CAPITAL风险投资基金 CE…

【Java八股面试系列】中间件-Redis

目录 Redis 什么是Redis Redis解决了什么问题 Redis的实现原理 数据结构 String 常用命令 应用场景 List(列表) 常用命令 应用场景 Hash(哈希) 常用命令 应用场景 set(集合) 常见命令​编辑 应用场景 Sorted Set(有序集合) 常见命令​编辑 应用场景 数据持…

Day46:WEB攻防-注入工具SQLMAPTamper编写指纹修改高权限操作目录架构

目录 数据猜解-库表列数据&字典 权限操作-文件&命令&交互式 提交方法-POST&HEAD&JSON 绕过模块-Tamper脚本-使用&开发 分析拓展-代理&调试&指纹&风险&等级 知识点&#xff1a; 1、注入工具-SQLMAP-常规猜解&字典配置 2、注入…

助力低碳出行 | 基于ACM32 MCU的电动滑板车方案

前言 随着智能科技的快速发展&#xff0c;电动滑板车的驱动系统也得到了长足的发展。国内外的电动滑板车用电机驱动系统分为传统刷式电机和无刷电机两种类型。其中&#xff0c;传统的刷式电机已经逐渐被无刷电机所取代&#xff0c;无刷电机的性能和寿命都更出色&#xff0c;已成…

pandas数据保存与加载

安装操作Excel模拟数据写入编辑读取切片操作 统计 安装 pip install pandas pip install numpyExcel环境安装 pip install xlrd pip install xlwt pip install openpyxi操作Excel import pandas as pd 模拟数据 写入 import pandas as pd# 模拟需要写入的数据 dic{name:[…

【计算机网络篇】数据链路层(4.2)可靠传输的实现机制

文章目录 &#x1f354;可靠传输的实现机制⭐停止 - 等待协议&#x1f5d2;️注意 &#x1f50e;停止 - 等待协议的信道利用率&#x1f5c3;️练习题 ⭐回退N帧协议&#x1f388;回退N帧协议的基本工作流程&#x1f50e;无传输差错的情况&#x1f50e;超时重传的情况&#x1f5…

大话设计模式之迪米特法则

迪米特法则&#xff0c;也称为最少知识原则&#xff08;Law of Demeter&#xff09;&#xff0c;是面向对象设计中的一个重要原则&#xff0c;其核心思想是降低耦合度、减少对象之间的依赖关系&#xff0c;从而使系统更加灵活、易于维护和扩展。 根据迪米特法则&#xff0c;一…

【考研数学】线代跟张宇,还是李永乐?

干吗要做选择&#xff0c;你可以全部都要的嘛&#xff01; 基础阶段选张宇&#xff0c;强化阶段选李永乐&#xff0c;这样搭配可以说是最佳了。 先来说下两位老师各自的特点&#xff0c;张宇老师&#xff0c;讲线代通俗易懂&#xff0c;技巧运用得溜溜的。他的课&#xff0c;…

samba实现linux共享文件夹

一、samba安装 sudo apt install samba 二、配置Samba 编辑Samba配置文件sudo vi /etc/samba/smb.conf 在文件末尾添加以下内容&#xff0c;设置一个简单的共享目录&#xff08;替换path_to_share为实际的共享目录路径&#xff09;&#xff1a; [Share] path /path_to_sha…