1 | 5分钟上手自动化测试——Airtest+Poco快速上手

1.1 前言

本文档将演示如何使用Airtest Project专用的编辑器AirtestIDE,编写Airtest+Poco自动化脚本的全流程。强烈建议新手从本文档开始阅读,并使用AirtestIDE上手脚本编写。


1.2 简介

AirtestIDE是一个跨平台的UI自动化测试编辑器,适用于游戏和App。

  • 自动化脚本录制、一键回放、报告查看,轻而易举实现自动化测试流程。
  • 支持基于图像识别的Airtest框架,适用于所有Android/iOS/Windows应用。
  • 支持基于UI控件搜索的Poco框架,适用于Unity3d、Cocos2d与Android/iOS App等多种平台。
  • 能够在Windows和MacOS运行。

访问官网通过视频查看更多特性。

通过本教程,你将学会如何上手自动化测试(或者写点脚本来自动玩游戏)。相信我,这个过程会非常愉快~


1.3 安装

目前AirtestIDE提供了Windows和Mac两个版本的客户端,请从官网下载,解压即用。


1.4 连接设备

AirtestIDE目前支持测试Android/Windows/iOS上的应用,其它更多平台的支持正在开发中。

无论是Android/iOS手机,还是Windows窗口,在Airtest中都将它视为一个设备,接下来我们将演示如何连接一个设备

1.4.1 连接Android手机

通过ADB连接你的电脑和Android手机,即可开始调试Android应用。ADB是Google官方提供的Android调试工具。AirtestIDE依赖ADB与安卓设备进行通信。

打开AirtestIDE,按照以下步骤进行连接:

1、打开手机设置-开发者选项-USB调试开关,参考安卓官方文档;
2、在AirtestIDE设备面板中点击refresh ADB按钮,查看连接上的设备;
3、如果没有显示出设备,试试restart ADB,如果还不行,参考FAQ文档进行问题排查;
4、能够成功看到设备后,点击对应设备的Connect按钮,进行初始化。

手机连接成功后,即可在AirtestIDE中看到手机屏幕的镜像显示,并进行实时操作。

如果手机连接失败,请先参考FAQ文档进行问题排查。若依然不成功,请将手机型号和AirtestIDE后台报错提交到Github Issue,开发人员会尽快修复。由于Android手机的碎片化问题严重,我们非常感谢您的反馈可以帮助这个项目做得更好。

1.4.2 连接Windows窗口

对于Windows桌面程序的测试,AirtestIDE可以将被测窗口嵌入,方便脚本录制和调试。

  • 在AirtestIDE设备面板中点击“Windows-框选游戏窗口”按钮。
  • 将鼠标移动到被测程序的窗口上,会显示绿色边框,将对应的窗口框出。
  • 点击左键即可将对应的窗口嵌入到AirtestIDE中。

如果上述方法不能正确找到被测程序的窗口,你还可以使用备用嵌入方法。

1.4.3 连接iOS手机

要连接一台iOS手机,你需要先准备好一台安装了Xcode的Mac电脑,连接方法参考文档。


1.5 录制自动化脚本

在连上设备后,我们可以开始录制自动化测试脚本了,在接下来的内容中,我们将会使用一台Android设备上的一款Unity游戏应用,给大家演示如何录制脚本。

1.5.1 模拟输入

让我们先从最常用的模拟点击开始吧,模拟点击的意思就是,模仿你的操作去点击设备上的某个指定位置。

(1)基于图像识别

目前我们支持通过图像识别的方式,找到你想要点击的位置并进行操作,这是基于Airtest这个框架实现的。

我们可以先看看如何自动录制脚本:点击AirtestIDE左侧的Airtest辅助窗上的“录制”按钮,然后随着你在设备窗口上操作手机,代码会自动生成在代码窗口中。

马上来验证,点击“运行”按钮运行你的第一个自动化脚本吧!

如果你觉得自动录制生成的图标不够精确,还可以点击Airtest辅助窗上的touch按钮,然后在设备窗口上框选精确的图标,也可以自动生成一条touch语句。

类似的模拟输入操作还有滑动:点击swipe按钮,在设备窗口上框选精确的图标作为滑动起点,然后点击滑动终点位置,即会自动生成一个swipe语句。

其它模拟输入的API包括:

  • Text:文字输入
  • KeyEvent:按键输入,包括(HOME/BACK/MENU等)
  • Sleep:等待
  • Snapshot:截屏

(2)基于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树形结构。


1.6 框架信息

上述两种UI识别方式,分别是基于两个框架:

  • 基于图像识别的Airtest框架
  • 基于UI控件搜索的Poco框架

这两个框架都是由我们团队开发的Python第三方库,在实际项目使用经验中,我们发现两者互相配合会得到最好的效果。在脚本编写的过程中,我们往往也需要查阅它们的项目API文档。


1.7 使用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的仓库。

1.7.1 断言

到这里,我们已经有各种模拟输入方法,配合逻辑控制语句让手机动起来。自动化测试中还有很重要的一个步骤:结果验证,那么我们来看看怎样声明断言。

(1)验证UI界面

录制方法与模拟输入类似。

  • assert_exists:断言图片存在
  • assert_not_exists:断言图片不存在

(2)验证数值

通过Poco获取属性值,手写代码进行断言。

  • assert_equal:断言相等
  • assert_not_equal:断言不等

例如:

# ... 模拟输入并获得20分之后value = Poco("分数按钮").attr("num")
assert_equal(value, 20, "获到20分") 

1.8 查看测试报告

脚本运行完毕后,点击“查看报告”按钮(快捷键Ctrl+L),会使用默认浏览器打开结果报告页面。报告中将展示出每一个步骤的内容和实际执行过程的截图、运行结果,方便查看步骤是否执行成功。


1.9 命令行接口

现在,你已经学会自动化测试了。接下来呢,你可以使用命令行接口将自动化测试与持续集成结合起来。持续集成是什么?

在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上进行测试。

转载于:https://www.cnblogs.com/ShineLeem/p/11325990.html

1-5分钟上手自动化测试——Airtest+Poco快速上手相关推荐

  1. 一、自动化测试——Airtest+Poco快速上手

    1.前言 本文档将演示使用AirtestProject专用的编辑器AirtestIDE,编写Airtest+Poco自动化脚本的全流程.强烈建议新手从本文档开始阅读,并使用AirtestIDE上手脚本 ...

  2. 【零基础上手JavaWeb】07 快速上手 XML解析方法

    写在前面,大家好!我是[跨考菌],一枚跨界的程序猿,专注于后台技术的输出,目标成为全栈攻城狮!这博客是对我跨界过程的总结和思考.如果你也对Java.后端技术感兴趣,抑或是正在纠结于跨界,都可以关注我的 ...

  3. 「自动化测试」新一代 Web 前端自动化测试框架 —— playwright 快速上手,轻松带入项目

    playwright上手 内网如何安装项目依赖 注意:想运行 playwright需要下载相关浏览器的二进制文件 由于默认情况下,Playwright 会从 Microsoft CDN 下载浏览器二进 ...

  4. python游戏编程快速上手pdf_Python游戏编程快速上手 (斯维加特著) 中文pdf完整版[18MB]...

    Python是一种高级程序设计语言,因其简洁.易读及可扩展性日渐成为程序设计领域备受推崇的语言.Python游戏编程快速上手通过编写一个个小巧.有趣的游戏来教授Python编程,并且采用直接展示了游戏 ...

  5. 3分钟学会SVN:SVN快速上手

    选择SVN客户端 Windows平台 TortoiseSVN:也叫乌龟SVN,Windows上最流行的SVN客户端,安装后你的右键就会多了几个SVN相关的菜单,非常方便 Eclipse插件:在Ecli ...

  6. RK3588快速上手 | 01-RK3588开发板快速上手

    文章目录 一.RK3588与RK3399 1. 简介 2. 整体框图 3. RK3588典型应用框图 二.Firefly RK3588开发板 1. Core-3588J核心板 2. ITX底板 3. ...

  7. PyTorch 分布式训练DDP 单机多卡快速上手

    PyTorch 分布式训练DDP 单机多卡快速上手 本文旨在帮助新人快速上手最有效的 PyTorch 单机多卡训练,对于 PyTorch 分布式训练的理论介绍.多方案对比,本文不做详细介绍,有兴趣的读 ...

  8. objective-c 2.0编程语言,Objective-C 2.0编程快速上手 EXE版[12MB]

    Objective-C 2.0编程快速上手 内容简介: <Objective-C 2.0编程快速上手>是介绍Objective-C编程的基础教程.全书采用实例讲解.按部就班的方式,全面详细 ...

  9. 一、快速上手SpringBoot

    一.快速上手SpringBoot 一.快速上手SpringBoot 1.SpringBoot快速入门(一) 2.SpringBoot快速入门(二) 3.SpringBoot快速入门(三) 4.Spri ...

最新文章

  1. mysql 5.7优化不求人_《MySQL 5.7优化不求人》直播精彩互动
  2. 解释ROM、RAM、SRAM、DRAM与FLASH在使用上的区别及其原因
  3. demod函数_MATLAB信号处理工具箱函数 | 学步园
  4. oracle 执行java_oracle调用JAVA类的方法
  5. elasticsearch运维实战之2 - 系统性能调优
  6. ICE专题:ICE简介
  7. ncurses输出函数:字符+字符串的输出
  8. POJ3169 Layout(差分约束)
  9. 彻底理解数字图像处理中的卷积-以Sobel算子为例
  10. 学生计算机 在线使用,中学生计算机基础教程
  11. 一江春水向东流 任正非
  12. 计算机中堆栈指针的作用,堆栈指针是什么_有什么作用
  13. 用UCWEB浏览器上网 省流量小技巧
  14. EDTA 最简易安装方法
  15. 怎么在视频上叠加字幕和Logo--技术实现2
  16. GMS2(Gamemaker Studio 2)运行工程时遇到的问题解决
  17. Windows 下编译 EXE 文件时把一个外部 txt 文件编译到 EXE 里面
  18. JavaBean的书写规范
  19. 苏州新导化工厂人员定位系统功能真的如此强大?当然强大,定位准确
  20. threejs使用精灵图添加图片贴图

热门文章

  1. python处理字体(动态字体库)
  2. 加州大学圣地亚哥分校计算机科学排名,加州大学圣地亚哥分校UCSD计算机科学Computer Science专业排名第37位(2021年THE世界大学商科排名)...
  3. 订单(一)——准备订单数据
  4. CPU占用率过高的原因和后果
  5. evak购物车--团队博客
  6. 迅雷7 down.php,普通文件与迅雷、旋风、快车、RayFile的下载地址转换算法
  7. elasticsearch分词练习、自定义分词器练习
  8. Python包中__init__.py文件的作用和用法
  9. 【笔记:Spring】
  10. 王牌竞速安装后显示服务器维护,王牌竞速服务器进不了 服务器登录问题详解...