⼿机⾃动化5分钟上⼿⾃动化测试——Airtest+Poco快速上⼿
前⾔
本⽂档将演⽰使⽤AirtestProject专⽤的编辑器,编写Airtest+Poco⾃动化脚本的全流程。强烈建议新⼿从本⽂档开始阅读,并使⽤AirtestIDE上⼿脚本编写。
作为⼀个开发者,有⼀个学习的氛围跟⼀个交流圈⼦特别重要,这是⼀个我的iOS交流:,不管你是⼩⽩还是⼤⽜欢迎⼊驻,分享BAT,阿⾥⾯试题、⾯试经验,讨论技术,⼤家⼀起交流学习成长!
简介
AirtestIDE 是⼀个跨平台的UI⾃动化测试编辑器,适⽤于游戏和App
⾃动化脚本录制、⼀键回放、报告查看,轻⽽易举实现⾃动化测试流程
⽀持基于图像识别的框架,适⽤于所有Android/iOS/Windows应⽤
⽀持基于UI控件搜索的框架,适⽤于Unity3d,Cocos2d与Android/iOS App等多种平台
能够运⾏在Windows和MacOS上
访问通过视频查看更多特性。
通过本教程,你将学会如何上⼿⾃动化测试(或者写点脚本来⾃动玩游戏)。相信我,这个过程会⾮常愉快~
安装
⽬前AirtestIDE提供了Windows和Mac两个版本的客户端,请从下载,解压即⽤。
连接设备
AirtestIDE⽬前⽀持测试Android/Windows/iOS上的应⽤,其他更多平台的⽀持正在开发中。
⽆论是Android/iOS⼿机,还是Windows窗⼝,在Airtest中都将它视为⼀个设备,接下来我们将演⽰如何连接⼀个设备。
连接Android⼿机
游戏辅助框架免root通过ADB连接你的电脑和Android⼿机,即可开始调试Android应⽤。是Google官⽅提供的Android调试⼯具。AirtestIDE依赖ADB与安卓设备进⾏通信。
打开AirtestIDE,按照以下步骤进⾏连接:
html5网站新闻1. 打开⼿机设置-开发者选项-USB调试开关,参考
jdk环境变量配置windows102. 在AirtestIDE设备⾯板中点击refresh ADB按钮,查看连接上的设备
3. 如果没有显⽰出设备,试试restart ADB,如果还不⾏,参考⽂档进⾏问题排查
4. 能够成功看到设备后,点击对应设备的Connect按钮,进⾏初始化
⼿机连接成功后,即可在AirtestIDE中看到⼿机屏幕的镜像显⽰,并进⾏实时操作。
如果连接不成功可以打开use允许安装程序
连接Windows窗⼝
对于Windows桌⾯程序的测试,AirtestIDE可以将被测窗⼝嵌⼊,⽅便脚本录制和调试。
在AirtestIDE设备⾯板中点击Windows-框选游戏窗⼝按钮
将⿏标移动到被测程序的窗⼝上,会显⽰绿⾊边框,将对应的窗⼝框出
点击左键即可将对应的窗⼝嵌⼊到AirtestIDE中
如果上述⽅法不能正确到被测程序的窗⼝,你还可以使⽤。
连接iOS⼿机
要连接⼀台iOS⼿机,你需要先准备好⼀台安装了Xcode的Mac电脑,连接⽅法参考⽂档。
录制⾃动化脚本
在连上设备后,我们可以开始录制⾃动化测试脚本了,在接下来的内容中,我们将会使⽤⼀台Android设备上的⼀款Unity游戏应⽤,给⼤家演⽰如何录制脚本。
模拟输⼊
让我们先从最常⽤的模拟点击开始吧,模拟点击的意思就是,模仿你的操作去点击设备上的某个指定位置。
c和指针下载基于图像识别
⽬前我们⽀持通过图像识别的⽅式,到你想要点击的位置并进⾏操作,这是基于Airtest这个框架实现的。
浪客剑心最终章人诛篇我们可以先看看如何⾃动录制脚本:点击AirtestIDE左侧的Airtest辅助窗上的录制按钮,然后随着你在设备窗⼝上操作⼿机,代码会⾃动⽣成在代码窗⼝中。
[
马上来验证⼀下,点击运⾏按钮运⾏你的第⼀个⾃动化脚本吧!
如果你觉得⾃动录制⽣成的图标不够精确,还可以点击Airtest辅助窗上的touch按钮,然后在设备窗⼝上框选精确的图标,也可以⾃动⽣成⼀条touch语句。
类似的模拟输⼊操作还有滑动:点击swipe按钮,在设备窗⼝上框选精确的图标作为滑动起点,然后点击滑动终点位置,即会⾃动⽣成⼀个swipe语句。
其他模拟输⼊的API包括:
text: ⽂字输⼊
keyevent: 按键输⼊,包括(HOME/BACK/MENU等)
sleep: 等待
snapshot: 截屏
基于UI控件
如果你发现图像识别不够精确,还可以使⽤基于UI控件搜索的⽅式进⾏⾃动化测试,与刚才的Airtest不同,这是Poco这个框架实现的功能。
⽬前Poco直接⽀持Unity3d、Cocos2d、⽩鹭引擎等多种游戏引擎,以及Android/iOS原⽣App。
如果是Android/iOS原⽣应⽤,是即插即⽤的,⽆需接⼊SDK。但由于游戏引擎使⽤OpenGL等图形接⼝直接渲染,⽽没有使⽤Android原⽣的UI系统,我们需要与游戏的Runtime进⾏通信获取整个UI结构。
我们提供了⾮常⽅便的SDK接⼊⽅法,点这⾥查阅⽬前⽀持的平台列表,以及如何为你的项⽬接⼊Poco。
如果你的项⽬使⽤的引擎或平台不在⽂档中,我们同样⽀持⾃⾏扩展SDK。
实际上在⽹易游戏内部,我们就是⽤这种⽅式⽀持了Messiah/NeoX/梦幻等多个⾃研引擎。
接⼊完成后我们即可开始。⼿机启动游戏,在AirtestIDE中的Poco辅助窗切换模式⾄对应引擎类型,即可看到整个UI结构。
点击录制按钮,然后随着你的⿏标操作,会⾃动⽣成Poco语句到脚本编辑框中。
同样,你也可以通过UI树形结构更精确的检视UI控件,双击节点⾃动⽣成Poco语句,或者⾃⾏选择更好的写法。
⾃动录制出的语句不⼀定能够适应所有场景,采⽤更合理的选择器编写代码,通常会增强整个⾃动化脚本的健壮性和可读性,这是门学问。
录制完脚本后记得运⾏试试效果。
对于Android/iOS的原⽣应⽤来说,不需要接⼊SDK即可使⽤,例如在连上Android⼿机后,将Poco辅助窗的模式切换⾄Android,能可以看到整个UI树形结构。
框架信息
上述两种UI识别⽅式,分别是基于两个框架:
基于图像识别的Airtest框架
基于UI控件搜索的Poco框架
这两个框架都是由我们团队开发的Python第三⽅库,在实际项⽬使⽤经验中,我们发现两者互相配合会得到最好的效果。在脚本编写的过程中,我们往往也需要查阅它们的项⽬
API⽂档。
使⽤Python语法
整个AirtestIDE中录制和运⾏的代码都是基于Python语⾔。Python语法简洁⽽强⼤,第三库和⼯具也⾮常多。
对于新⼿,Python上⼿⾮常容易,学会基本语法即可写出⾃动化脚本中所需的逻辑语句。
touch("开卡包.png")
if exists("奖励⾯板.png"):
for i in range(5):
Poco("奖励-%s" % i).click()
对于⽼⼿,你可以在AirtestIDE中使⽤各种第三⽅库来使你的⾃动化脚本更加强⼤,通过添加PYTHONPATH设置,可以使⽤本地的来运⾏你的脚本。
除了辅助窗⼝⾥⾯提供的语句,更多的API⽂档,可以查看Airtest和Poco的仓库。
断⾔
到这⾥,我们已经有各种模拟输⼊⽅法,配合逻辑控制语句让⼿机动起来。⾃动化测试中还有很重要的⼀个步骤:结果验证,那么我们来看看怎样声明断⾔。
验证UI界⾯
录制⽅法与模拟输⼊类似
assert_exists:断⾔图⽚存在
assert_not_exists:断⾔图⽚不存在
验证数值
通过Poco获取属性值,⼿写代码进⾏断⾔
assert_equal:断⾔相等
assert_not_equal:断⾔不等
例如
# ... 模拟输⼊并获得20分之后
value = Poco("分数按钮").attr("num")
sybase被谁收购assert_equal(value, 20, "获到20分")
查看测试报告
脚本运⾏完毕后,点击查看报告按钮(快捷键Ctrl+L),会使⽤默认浏览器打开结果报告页⾯。报告中将展⽰出每⼀个步骤的内容和实际执⾏过程的截图、运⾏结果,⽅便查看
步骤是否执⾏成功。
命令⾏接⼝
现在,你已经学会⾃动化测试了。接下来呢,你可以使⽤命令⾏接⼝将⾃动化测试与持续集成结合起来。持续集成是什么?
在AirtestIDE运⾏脚本时,LOG窗⼝中会打印运⾏命令。
你可以在不开启IDE的情况下,在命令⾏中使⽤那条命令来启动测试脚本,例如:
"D:\迅雷下载\AirtestIDE\AirtestIDE" runner "D:\AirtestIDE_2018-01-24_83\untitled.air"  --device Android://127.0.0.1:5037/F8UDU16409004135 --log "C:\Users\gzliuxin\AppData\Local\Temp\AirtestIDE\scripts\cdfc40e8c297b6ad88e09de64d8bafa3使⽤AirtestIDE你可以轻松的录制出测试脚本,保存为.air脚本。请注意⼀个.air脚本中不要包含太多内容,⽤良好的脚本命名和⽬录结构来组织你的脚本,覆盖所有测试点。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。