一、自动化测试——Airtest+Poco快速上手
1、前言
本文档将演示使用AirtestProject专用的编辑器AirtestIDE,编写Airtest+Poco自动化脚本的全流程。强烈建议新手从本文档开始阅读,并使用AirtestIDE上手脚本编写。
2、简介
AirtestIDE 是一个跨平台的UI自动化测试编辑器,适用于游戏和App。
自动化脚本录制、一键回放、报告查看,轻而易举实现自动化测试流程
支持基于图像识别的Airtest框架,适用于所有Android/iOS/Windows应用
支持基于UI控件搜索的Poco框架,适用于Unity3d,Cocos2d与Android/iOS App等多种平台
能够运行在Windows和MacOS上
安装
目前AirtestIDE提供了Windows和Mac两个版本的客户端,请从官网下载,解压即用。
3、连接设备
AirtestIDE目前支持测试Android/Windows/iOS上的应用,其他更多平台的支持正在开发中。
无论是Android/iOS手机,还是Windows窗口,在Airtest中都将它视为一个设备,接下来将演示如何连接一个设备。
连接Android手机
通过ADB连接你的电脑和Android手机,即可开始调试Android应用。ADB是Google官方提供的Android调试工具。AirtestIDE依赖ADB与安卓设备进行通信。
打开AirtestIDE,按照以下步骤进行连接:
- 打开手机设置-开发者选项-USB调试开关,参考安卓官方文档
- 在AirtestIDE设备面板中点击refresh ADB按钮,查看连接上的设备
- 如果没有显示出设备,试试restart ADB,如果还不行,参考FAQ文档进行问题排查
- 能够成功看到设备后,点击对应设备的Connect按钮,进行初始化
连接Windows窗口
对于Windows桌面程序的测试,AirtestIDE可以将被测窗口嵌入,方便脚本录制和调试。
- 在AirtestIDE设备面板中点击Windows-框选游戏窗口按钮
- 将鼠标移动到被测程序的窗口上,会显示绿色边框,将对应的窗口框出
- 点击左键即可将对应的窗口嵌入到AirtestIDE中
4、录制自动化脚本
在连上设备后,就可以开始录制自动化测试脚本了,在接下来的内容中,这里将会使用一台Android设备上的一款Unity游戏应用,给大家演示如何录制脚本。
模拟输入
先从最常用的模拟点击开始吧,模拟点击的意思就是,模仿你的操作去点击设备上的某个指定位置。
基于图像识别
目前airtest支持通过图像识别的方式,找到你想要点击的位置并进行操作,这是基于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结构。
airtest提供了非常方便的SDK接入方法,点这里查阅目前支持的平台列表,以及如何为你的项目接入Poco。
实际上在网易游戏内部,很多就是用这种方式支持了Messiah/NeoX/梦幻等多个自研引擎。
接入完成后即可开始。手机启动游戏,在AirtestIDE中的Poco辅助窗切换模式至对应引擎类型,即可看到整个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设置,可以使用本地的python.exe来运行你的脚本。
除了辅助窗口里面提供的语句,更多的API文档,可以查看Airtest和Poco的仓库。
断言
到这里,已经有各种模拟输入方法,配合逻辑控制语句让手机动起来。自动化测试中还有很重要的一个步骤:结果验证,那么接下来看看怎样声明断言。
验证UI界面
录制方法与模拟输入类似
assert_exists:断言图片存在
assert_not_exists:断言图片不存在
验证数值
通过Poco获取属性值,手写代码进行断言
assert_equal:断言相等
assert_not_equal:断言不等
例如
# ... 模拟输入并获得20分之后
value = Poco("分数按钮").attr("num")assert_equal(value, 20, "获到20分")
5、查看测试报告
脚本运行完毕后,点击查看报告按钮(快捷键Ctrl+L),会使用默认浏览器打开结果报告页面。报告中将展示出每一个步骤的内容和实际执行过程的截图、运行结果,方便查看步骤是否执行成功。
6、命令行接口
现在,你已经学会自动化测试了。接下来呢,你可以使用命令行接口将自动化测试与持续集成结合起来。持续集成是什么?
在AirtestIDE运行脚本时,LOG窗口中会打印运行命令。
你可以在不开启IDE的情况下,在命令行中使用那条命令来启动测试脚本,例如:
"D:\迅雷下载\AirtestIDE\AirtestIDE" runner
"D:\AirtestIDE_2018-01-24_83\untitled.air" --deviceAndroid://127.0.0.1:5037/F8UDU16409004135 --log
"C:\Users\gzliuxin\AppData\Local\Temp\AirtestIDE\scripts\cdfc40e8c297b6ad88e09de64d8bafa3"
使用AirtestIDE你可以轻松的录制出测试脚本,保存为.air脚本。请注意一个.air脚本中不要包含太多内容,用良好的脚本命名和目录结构来组织你的脚本,覆盖所有测试点。
你还可以在不同电脑上针对不同设备运行测试, 这时候你就需要用命令行运行 .air 脚本 。 对于多平台发布的产品,灵活使用跨平台API和命令行,还可以让同一套测试脚本运行在Android和Windows上进行测试。
一、自动化测试——Airtest+Poco快速上手相关推荐
- 1-5分钟上手自动化测试——Airtest+Poco快速上手
1 | 5分钟上手自动化测试--Airtest+Poco快速上手 1.1 前言 本文档将演示如何使用Airtest Project专用的编辑器AirtestIDE,编写Airtest+Poco自动化脚 ...
- 「自动化测试」新一代 Web 前端自动化测试框架 —— playwright 快速上手,轻松带入项目
playwright上手 内网如何安装项目依赖 注意:想运行 playwright需要下载相关浏览器的二进制文件 由于默认情况下,Playwright 会从 Microsoft CDN 下载浏览器二进 ...
- 一篇文章带你快速上手Airtest和Poco
前言 本文档将演示使用AirtestProject专用的编辑器AirtestIDE,编写Airtest+Poco自动化脚本的全流程.强烈建议新手从本文档开始阅读,并使用AirtestIDE上手脚本编写 ...
- 基于airtest+poco微信服务号自动化测试NO1
基于airtest微信服务号自动化测试NO1 1. 项目背景 1.1 框架选择airtest+模拟器 1.2 软件安装 1.2.1 mumu模拟器 1.2.2 airtest安装 1.2.3 调试工具 ...
- airtest adb 远程连接_使用Airtest超快速开发App爬虫
想开发网页爬虫,发现被反爬了?想对 App 抓包,发现数据被加密了?不要担心,使用 Airtest 开发 App 爬虫,只要人眼能看到,你就能抓到,最快只需要2分钟,兼容 Unity3D.Cocos2 ...
- python快速开发app_python 使用Airtest超快速开发App爬虫
使用Airtest超快速开发App爬虫 想开发网页爬虫,发现被反爬了?想对 App 抓包,发现数据被加密了?不要担心,使用 Airtest 开发 App 爬虫,只要人眼能看到,你就能抓到,最快只需要2 ...
- 全面超越Appium,使用Airtest超快速开发App爬虫,你会吗?
全面超越Appium,使用Airtest超快速开发App爬虫 想开发网页爬虫,发现被反爬了?想对 App 抓包,发现数据被加密了?不要担心,使用 Airtest 开发 App 爬虫,只要人眼能看到,你 ...
- appium 多开_全面超越Appium,使用Airtest超快速开发App爬虫
想开发网页爬虫,发现被反爬了?想对 App 抓包,发现数据被加密了?不要担心,使用 Airtest 开发 App 爬虫,只要人眼能看到,你就能抓到,最快只需要2分钟,兼容 Unity3D.Cocos2 ...
- python快速开发app_使用Airtest超快速开发App爬虫
想开发网页爬虫,发现被反爬了?想对 App 抓包,发现数据被加密了?不要担心,使用 Airtest 开发 App 爬虫,只要人眼能看到,你就能抓到,最快只需要2分钟,兼容 Unity3D.Cocos2 ...
最新文章
- auth0的java-jwt_Spring boot + JWT 实现安全验证 ---auth0.jwt
- CentOS 7 快速部署 ELK
- 人工智能工程师学习路线
- 如何正确认识C语言在当今编程领域的地位
- Android DDMS的打开以及查看手机页面布局层次
- 媒体没谈到的企业即时通讯软件
- android:gravity与android:layout_gravity
- python实例变量命名规则_Java,Python的一些命名规范
- 未签名的应用程序请求对系统进行无限制访问_OWASP Top 10 2017 10项最严重的 Web 应用程序安全风险 (完结篇)...
- lucene案例demo
- HBase超级详细总结
- 感谢你遇到的问题(2)
- Python 函数参数传递的困惑
- 《DB 查询分析器》使用技巧之(七)
- 亲测源码多多进鱼带VUE源码任务悬赏源码活动营销三级分销返佣积分商城版
- word使用过程中遇到的问题记录(二):如何画柱状图和折线图的组合图?
- To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
- Pandas库之DataFrame
- 苹果真伪查询_二手MacBook Pro Air等苹果笔记本验货 鉴定 基本方法 流程
- Flutter插件开发--获取Android手机电池信息
热门文章
- svn: 不能打开文件“/XXX/svn/xxx/db/txn-current-lock”: 权限不够
- 二进制、八进制、十进制、十六进制关系及转换
- 模拟卷Leetcode【普通】714. 买卖股票的最佳时机含手续费
- PHP赛事贝格尔编排法--双循环
- android 视频插件下载,轻视频动态壁纸插件
- 二级路由dhcp关闭连不上wifi_无线宽带路由器除了WiFi上网还能有什么用,如何正确设置DHCP服务...
- autojs查找图片相似轮廓
- php是什么症状脾虚什么症状怎么治,脾虚可能会产生什么症状呢?该如何治疗?...
- 自制动漫小姐姐图片api
- Android apk安全监测及加固方案