标签:pen 屏幕 comm -o ref lan 系统 模拟点击 latest
参考:https://testerhome.com/topics/12391
AirtestIDE 是一个跨平台的UI自动化测试编辑器,适用于游戏和App。
访问 官网 通过视频查看更多特性。
通过本教程,你将学会如何上手自动化测试(或者写点脚本来自动玩游戏)。相信我,这个过程会非常愉快~
目前AirtestIDE提供了Windows和Mac两个版本的客户端,请从 官网 下载,解压即用。
AirtestIDE目前支持测试Android和Windows上的应用,iOS支持正在开发中。
通过ADB连接你的电脑和Android手机,即可开始调试Android应用。 ADB 是Google官方提供的Android调试工具。AirtestIDE依赖ADB与安卓设备进行通信。
打开AirtestIDE,按照以下步骤进行连接:
设置-开发者选项-USB调试
开关,参考 安卓官方文档Refresh ADB
按钮,查看连接上的设备Restart ADB
,如果还不行,参考 FAQConnect
按钮,进行初始化手机连接成功后,你即可在AirtestIDE中看到手机屏幕的镜像显示,并进行实时操作。
如果手机连接失败,请将手机型号和AirtestIDE后台报错提交到 Github Issues。 开发人员会尽快修复。 由于Android手机的碎片化问题严重,我们非常感谢您的反馈可以帮助这个项目做的更好。
对于Windows桌面程序的测试,我们通常是测试一个窗口。AirtestIDE可以将被测窗口嵌入,方便脚本录制和调试。
Windows-框选游戏窗口
按钮如果上述方法不能正确找到被测程序的窗口,你还可以 使用备用嵌入方法。
即将到来:)
现在我们可以开始录制自动化测试脚本了。
先从最常用的模拟点击开始。
点击Airtest辅助窗上的 录制
按钮,然后随着你在设备窗口上操作手机,代码会自动生成在代码窗口中。
马上来验证一下,点击 运行
按钮运行你的第一个自动化脚本吧!
如果你觉得自动录制的图标不够精确,还可以点击Airtest辅助窗上的 touch
按钮,然后在设备窗口上框选精确的图标, 也可以自动生成 touch
语句。
类似的模拟输入操作还有滑动:点击 swipe
按钮,在设备窗口上框选精确的图标作为滑动起点, 然后点击滑动终点位置,即会自动生成一个 swipe
语句。
其他模拟输入的API包括:
如果你发现图像识别不够精确,可以使用基于UI控件搜索的方式进行自动化测试。
目前AirtestIDE直接支持Unity3d、Cocos2d两种游戏引擎和Android源生App。 由于游戏引擎使用OpenGL等图形接口直接渲染,而没有使用Android源生的UI系统, 我们需要与游戏的Runtime进行通信获取整个UI结构。 Unity3d和Cocos2d-js我们提供了非常方便的SDK接入方 法 点这里。
其他游戏引擎和UI系统我们提供了SDK可自行扩展。
实际上在网易游戏内部我们就是用这种方式支持了Messiah/NeoX/梦幻等多个自研引擎。
接入完成后我们即可开始。手机启动游戏,在Poco辅助窗中切换模式至对应引擎类型,即可看到整个UI结构。
点击录制按钮,然后随着你的操作,会自动生成Poco语句。
同样,你也可以通过UI树形结构更精确的检视UI控件, 双击自动生成Poco语句, 或者自行选择更好的写法。更好的属性选择,通常会增强整个自动化脚本的健壮性和可读性, 这是门 学问 。
录制完脚本后记得运行试试效果。
由于Android源生App应用的UI结构可以通过 Accessibility
获取,我们直接开始使用。 将Poco辅助窗的模式切换至 Android
能看到整个UI树形结构。
实际上,上述两种方式分别是基于两个框架:
这两个框架都是由我们团队开发,在实际项目使用经验中,我们发现两者互相配合会得到最好的效果。
整个AirtestIDE中录制和运行的代码都是基于 Python2.7
语言。 Python语法简洁而强大,第三库和工具也非常多。
对于新手,Python上手非常容易,学会基本语法即可写出自动化脚本中所需的逻辑语句。
touch("开卡包.png")
if exists("奖励面板.png"):
for i in range(5):
Poco("奖励-%s" % i).click()
对于老手,你可以在AirtestIDE中使用各种第三方库来使你的自动化脚本更加强大, 添加PYTHONPATH。
除了辅助窗口里面提供的语句,更多的API文档,可以查看 Airtest 和 Poco 的仓库。
到这里,我们已经有各种模拟输入方法,配合逻辑控制语句让手机动起来。自动化测试中还有很重要的一个步骤:结果验证,那么我们来看看怎样声明断言。
录制方法与模拟输入类似
通过Poco获取属性值,手写代码进行断言
例如
# ... 模拟输入并获得20分之后
value = Poco("分数按钮").attr("num")
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
脚本中不要包含太多内容,用良好的脚本命名和目录结构来组织你的脚本,覆盖所有测试点。
你还可以在不同电脑上针对不同设备运行测试, 这时候你就需要使用 用命令行运行 .air 脚本 了。 对于多平台发布的产品,灵活使用跨平台API和命令行,还可以让同一套测试脚本运行在Android和Windows上进行测试。
在网易游戏内部,我们的大型游戏通常会有数百个测试脚本,覆盖常用的玩法测试。 每周,这数百个脚本会分别运行在200台手机上进行兼容性测试。 演示
AirtestIDE 游戏自动化(unity3d跨 Windows、Mac、IOS、Android)
标签:pen 屏幕 comm -o ref lan 系统 模拟点击 latest
原文地址:https://www.cnblogs.com/yingfei/p/8809755.html