IOS自动化测试之AirTest

摘要:
我是没仔细看文档,卡了个小坑ShowingRecentMessagesSigningfor"WebDriverAgentRunner"requiresadevelopmentteam.SelectadevelopmentteamintheSigning&Capabilitieseditor.需要注意的一点是,在Signing&Capabilities界面要勾选All,否则依旧会报相同的错误另外一个报错BuildingforiOS,buttheembeddedframework'CocoaAsyncSocket.framework'wasbuiltforiOS+iOSSimulator.这个有一定可能是我不停重复构建导致的问题,一气之下把项目删了重新拉下来,报错消失。接下来回到AirtestIDE上,基础工作做了一半,接下来还有四个小时需要踩坑https://airtest.doc.io.netease.com/IDEdocs/device_connection/4_ios_connection/接下来是一个通用问题。。BuildingforiOS,buttheembeddedframework'xxxx'wasbuiltforiOS+iOSSimulator.解决方案https://stackoverflow.com/questions/65303304/xcode-12-3-building-for-ios-simulator-but-the-linked-and-embedded-framework-waAnotherworkaroundistosetBuildSettings-˃"ValidateWorkspace"toYes.Itwillstillshowawarning,butwillbuildtheproject.点击WebDriverAgent-˃内部侧边栏-˃PROJECT-˃WebDriverAgent-˃BuildSettings-˃All-˃ValidateWorkspace-˃yes也是搞死我。。

系统环境:
macOS Catalina 10.15.7
Xcode 12.4(12D4e)
iPhone11
IOS 14

软件环境:
Carthage
brew

安装 minicap
https://testerhome.com/topics/10456
17年那些做测试的人都是没问题的,后来出现了一个19年的帖子关于设备未找到的,怀疑是设备版本问题,翻了一下issue,找到解决方案
https://github.com/openstf/ios-minicap/issues/53

简单来说就是把你iPhone的UDID写死上去。。。

获取UDID的方法:
链接数据线,打开访达,左侧导航栏「位置」中会出现你的设备,进去后点击你的设备信息(设备名称下面的一条东西,显示你的设备号、存储空间、电量的那个,没错,那东西可以点,还特么可以右击复制。。。)

复制出来后修改run.sh,将UDID注释,把自己的UDID粘贴过去
# UDID=$(system_profiler SPUSBDataType | sed -n -E -e '/(iPhone|iPad)/,/Serial/s/ *Serial Number: *(.+)/1/p')
UDID=YOUR IPHONE UDID

剩下的按照文章来,进行稳稳的。


安装WebDriverAgent(文章https://testerhome.com/topics/7220)

安装之后没有bootstrap.sh文件,下面评论104楼有一个解决方案(zuinjly #104)
git reset --hard 1eb3280d89e3510845efb5d1f398001313c2615b
将代码回滚到inspector版本

之前Xcode编译报错,稀里糊涂的装了Carthage,所以也就都解决了(安装方式百度一下吧,我忘了)


如果你遇到了下面这个报错,仔细看下内部侧面导航栏的targer选项,你选择的team是不是WebDriverAgentRunner的。。。。我是没仔细看文档,卡了个小坑
Showing Recent Messages
Signing for "WebDriverAgentRunner" requires a development team. Select a development team in the Signing & Capabilities editor.

需要注意的一点是,在Signing & Capabilities界面要勾选All,否则依旧会报相同的错误(在高版本Xcode的环境被划分的更细致了)

另外一个报错
Building for iOS, but the embedded framework 'CocoaAsyncSocket.framework' was built for iOS + iOS Simulator.

这个有一定可能是我不停重复构建导致的问题,一气之下把项目删了重新拉下来,报错消失(我确定有一种删除项目依赖的方式,但是我不知道方法,所以就把项目删咯)。


接下来回到Airtest IDE上,基础工作做了一半,接下来还有四个小时需要踩坑
https://airtest.doc.io.netease.com/IDEdocs/device_connection/4_ios_connection/

接下来是一个通用问题。。
Building for iOS, but the embedded framework 'xxxx' was built for iOS + iOS Simulator.

解决方案
https://stackoverflow.com/questions/65303304/xcode-12-3-building-for-ios-simulator-but-the-linked-and-embedded-framework-wa

Another workaround is to set BuildSettings ->"Validate Workspace" to Yes. It will still show a warning, but will build the project.

点击
WebDriverAgent -> 内部侧边栏 -> PROJECT -> WebDriverAgent -> Build Settings -> All -> Validate Workspace -> yes

也是搞死我。。

最后一步是iproxy

看着文档弄吧……WDA

优先安装WDA
https://testerhome.com/topics/10463

WDA编译完手机里应该有一个开发的图标,然后到设置里把开发权限开起来;
之后iproxy跑起来,就用AirTest默认的8100就好惹...

然后就是写脚本了(没记错的话),python的代码,很是简单,咳。。。


可以晚些更新嘛QAQ
不知道为什么之前明明已经都弄好了之后就没补文档惹Orz

免责声明:文章转载自《IOS自动化测试之AirTest》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇括号匹配(二) -- 经典动态规划如何在 Centos7 中修改yum源(三种方法)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

解析IOS控制台利用GDB命令查看报错堆栈

解析IOS控制台利用GDB命令查看报错堆栈是本文要介绍的内容,在ios开发中,如果提前释放一个指针的内存,在以后还继续使用这个指针,那么程序会立刻crash掉,而且很难有报错信息,我以前都是靠猜测去判断错误的原因,我们应该利用工具去找到错误的地方,然后快速准确的定位到错误地方,及其错误原因,最后进行改进。 其实ios控制台,提供这种机制,如果你选择debu...

iOS 7中的导航栏和状态栏

本文将要介绍的内容: 1.iOS 7中默认的导航栏 2.设置导航栏的背景颜色 3.在导航栏中使用背景图片 4.定制返回按钮的颜色 5.修改导航栏标题的字体 6.修改导航栏标题为图片 7.添加多个按钮 8.修改状态栏的风格 9.隐藏状态栏 本文提供的代码需要用Xcode 5来执行。如果你还在使用老版本的Xcode,那么在运行示例之前请将Xcode升级到Xco...

uniapp 微信小程序 微信7.0.12版本IOS端部分request请求被缓存

在IOS端微信更新深色模式后(7.0.12版本),IOS端小程序会出现实时请求的数据无法实时渲染到页面上。 也在微信社区向官方反映过该情况 ----> https://developers.weixin.qq.com/community/develop/doc/00064a827907e869a61a7220456c00 但是官方要求提供原生代码(我...

Android中app卡顿原因分析示例

在知乎回答了一个“为什么微博的app在iPhone比Android上流畅”的问题。后面部分是一个典型的动画卡顿的性能分析过程,因此帖在这里。有编程问题可以在这里交流。知乎链接。 ========================================================= 我来说下我所知道的事情。我不知道iOS为什么流畅,但我知道一些A...

iOS中集成ijkplayer视频直播框架

ijkplayer 是一款做视频直播的框架,基于ffmpeg,支持 Android 和 iOS,网上也有很多集成说明,但是个人觉得还是不够详细,在这里详细的讲一下在 iOS 中如何集成ijkplayer,即便以前从没有接触过,按着下面做也可以集成成功! 一、下载ijkplayer ijkplayer下载地址:https://github.com/Bili...

iOS定位元素

最近在做IOS自动化测试,IOS的Appium环境都配置OK,执行起来真的慢,慢到怀疑人生,那么今天就来总结一下IOS定位方式和各个定位方式的速度排序。 据我观察,按查找元素的顺序速度,从快到慢的顺序如下: ios_predicate >> accessibility_id >> class_name >>xpath...