Airtest,Poco,Unity自动化测试集成
作为一个Game Developer,测试部分是必不可少,程序完成需求首先要进行S0相关的测试,这样确保交付到策划验收和QA验收时是没有阻断性的bug或者显而易见代码缺陷。那么如何去做测试用例呢?肯定不是拿着鼠标,对功能进行点点就行了,尤其是测试即将发布的周版本,这样人力测试其实成本挺高的,如何将人力解放出来,那么自动化测试就是解决这种问题的,针对每个功能模块写好测试用例,直接跑测试用例就可以了。
Q:Airtest是什么玩意?
A:Airtest Project是网易游戏内部工具团队开发并开源的一款UI自动化测试工具,据说曾经获得谷歌力挺。
Q:Airtest支持哪些测试?
A:脚本录制测试,基于图形图像识别,写测试用例测试(python脚本)
Q:Airtest使用起来简单吗?
A:零门槛,入门只要5分钟,接下来,教你一步步搭建
如何搭建Airtest自动化测试环境
1,安装Python环境,安装后将python加入环境变量

2,安装pip(到python.exe文件目录下执行Python setup.py install)
3,安装poco(pip install poco)
4,安装pocoui(pip install pocoui)
5,安装pip install opencv-contrib-python==3.2.0.7 如果失败先执行卸载pip uninstall opencv-contrib-python然后再重新执行安装,如果pip版本过低可以升级:pip install opencv-contrib-python也可不升级直接执行安装

到这一步,表示已安装成功了!
6,安装airtest: pip install airtest
7,下载AirtestIDE,直接解压双击兼容模式启动.bat即可运行,下载地址:http://airtest.netease.com/
好了,到此测试环境已经搭建完成!启动下,看看Airtest IDE的界面

好了,接下来我们来一起学习如何使用这个IDE,我们要对接的Unity自动化测试,那么请移步这里:https://poco.readthedocs.io/en/latest/source/doc/integration.html#unity3d

只需要4步就搞定Poco SDK 的接入,那么接下来我们新建一个简单的Unity工程,将SDK放入工程下,搭建一个简易的界面,

怎样使用Poco呢?只需要在GameObject处于Active的实例下挂载PocoManager.cs即可。

那么运行游戏,你会发现Poco开启了一个服务端口,这个服务是干什么的,可以提供[RPC]函数的远程调用,主要功能是dump场景中的Unity层次试图下的节点的。

Airtest 如何和Unity协同使用呢?
在Editor模式下只需要把Game窗口嵌入到Airtest IDE即可,来看下怎么内嵌到IDE中,很简单的,点击选定窗口,款选Game视图即可。

来了,老弟,内嵌Airtest IDE成功

获取unity下的层次试图:

在Poco辅助框选择项目开发引擎Unity即可,支持Unity,UE,Cocos,Android原生,iOS原生开发,QT等。层次试图下的节点已经获取了,我该怎么和UI交互呢,别着急,他来了,下面就是
# -*- encoding=utf8 -*-
__author__ = "acer" from airtest.core.api import *
from airtest.cli.parser import cli_setup
from poco.drivers.unity3d import UnityPoco if not cli_setup():
auto_setup(__file__, logdir="G:/ATest/PocoUnity/log", devices=[
"Windows:///2360856",
], project_root="G:/ATest/PocoUnity") # focus_rect:[左边框宽度,上边框宽度,右边框宽度,下边框宽度]
device().focus_rect = [, , ,] # script content
print("start...") poco = UnityPoco()
class pUnit:
def __init__(self,_btn):
#print("init")
self.btn = _btn
'''单次点击调用'''
def testBtnClick(self):
self.btn.click() '''重复点击调用'''
def testBtnRepeatedClick(self):
count =
while True:
self.btn.click()
time.sleep(1.0)
count +=
if count > :
break
print("count:",count) print('输入账号,密码,模拟登录...')
poco("ipt_user").set_text('wuzhang')
poco("ipt_passwd").set_text('')
assert poco("btn_login").child("Text").get_text() == "登录", "Login"
poco("btn_login").click()
time.sleep() print(poco("tips").get_text()) btn_start = poco("btn_start")
if btn_start.exists():
x = pUnit(btn_start)
x.testBtnClick()
x.testBtnRepeatedClick()
print("over")
那我们运行下看下效果,有点迫不及待了,内心也有点小激动了......

如果不想写代码,可是录制脚本,然后就能按照我们录制的脚本运行,这个比较简单,此处不再演示了,下面你关心的可能是真机测试了,真机测试也很简单使用数据线连接你的手机在开发者模式中打开允许调试,在IDE上点击刷新ADB,其实就是执行了:adb devices,然后就看到了我的手机,点击connect即连上了我们的安卓设备。


连上手机了,手机下运行和编辑器一致,这里就不再上传截图了,到此简单的环境搭建和测试已经OK了,如果有更多的需求比如拖拽,滑动Scrollview等复杂点的交互可以查询官方提供的demo和API,这只是一个简易的自动化环境测试,我们可以自己写一个自动启动app,逐个调用各个模块的测试用例,比如:登录模块,点金玩家玩家头像获取信息,定时做任务等等。
参考资料:
http://airtest.netease.com/changelog.html
http://airtest.netease.com/tutorial/Tutorial.html
https://poco.readthedocs.io/en/latest/source/doc/integration.html#unity3d
Airtest,Poco,Unity自动化测试集成的更多相关文章
- 5分钟上手自动化测试——Airtest+Poco快速上手
版权声明:该文章为AirtestProject原创文章:允许转载,但转载必须注明“转载”并保留原链接 前言 本文档将演示使用`AirtestProject`专用的编辑器AirtestIDE,编写`Ai ...
- 使用Airtest进行UI自动化测试
一.环境搭建 1.Airtest客户端下载 访问官网http://airtest.netease.com/,根据自己的系统下载相应的客户端安装: 2.python工具下载与环境搭建 在本地python ...
- Unity 下集成第三方原生 SDK,以极光厂商通道为例
Unity中集成三方SDK有两种方式: Unity 项目开发中时常有集成 Android 第三方 SDK 的需求,比如接入第三方推送,分享等功能.而第三方 SDK 的集成文档提到的往往是基于原生 An ...
- 关于基于python2.7的unity自动化测试框架GAutomator测试环境的搭建(源码网盘下载地址:https://pan.baidu.com/s/1c2TXwtU)
关于基于python 2.7的unity自动化测试框架GAutomator测试环境的搭建 百度云盘链接(思维图学习资料):https://pan.baidu.com/s/1dFWExMD 准备工作(具 ...
- Airtest ——poco
1. Pymysql(No module named ‘cryptography’) pip install cryptography pip install paramiko 把 cryptogr ...
- unity android 集成指南
原地址:http://blog.csdn.net/alking_sun/article/details/36175187 1.安卓层开发并暴露接口. launcher activity(以下称为U ...
- linux+jenkins+python+svn 自动化测试集成之路
本文背景: 背景1---个人基础: 本机win7上安装pycharm,使用python搭建API自动化测试框架,本地运行Pass.本机上搭建jenkins,创建测试任务,定时构建Pass. 背景2-- ...
- airtest+poco多脚本、多设备批处理运行测试用例自动生成测试报告
一:主要内容 框架功能及测试报告效果 airtest安装.环境搭建 框架搭建.框架运行说明 airtest自动化脚本编写注意事项 二:框架功能及测试报告效果 1. 框架功能: 该框架笔者用来作为公司的 ...
- unity, iOS集成微信
将微信sdk直接拖进xcode会导致Library Search Paths是错的,需要手动改成如下样子(蓝色选中部分)才能通过编译:
随机推荐
- 【JVM】面试题之死锁及问题是怎么定位
前言 之前面试的时候被问到死锁这块的问题,借着最近学习jvm来总结下死锁相关的知识.如果有地方写的不到位的地方,麻烦读者及时提出,放在评论区,我这边也好及时改正. 回顾 所谓,温故而知新,首先回顾下, ...
- SpringBoot多数据源中的分布式事务
虽然现在微服务越来越流行,我们的系统随之也拆分出来好多的模块功能.这样做的目的其实就是为了弥补单体架构中存在的不足.随着微服务的拆分,肯定设计到分库分表,但这之中肯定设计到分布式事务.最典型的例子就是 ...
- CIA Hive Beacon Infrastructure复现1——使用Apache mod_rewrite实现http流量分发
0x00 前言 2017年11月9日维基解密公布一个代号为Vault8的文档,包含服务器远程控制工具Hive的源代码和开发文档.开发文档中的框架图显示Hive支持流量分发功能,若流量有效,转发至Hon ...
- 关于Git的版本控制
1.关于版本控制? 版本控制是一种记录文件或文件集随时间变化的系统,以便您以后可以调用特定版本,如果您是图形或Web设计人员并希望保留图像或布局的每个版本(您肯定希望这样),则使用版本控制系统(VCS ...
- numpy的array分割
import numpy as np A = np.arange(12).reshape(3,4) print(A) print(np.split(A,2,axis=1)) print(np.spli ...
- mac电脑终端使用scp上传/下载文件/文件夹
1.从服务器下载文件到本地电脑 1 scp -r remote_username@remote_ip:remote_folder local_folder 例如: 1 scp -r root@106. ...
- Microsoft Translator发布粤语文本翻译
今天,Microsoft Translator发布了粤语的文本翻译,新的语言增加将继续丰富微软翻译产品的生态系统*,让更多组织和个人能够快速且高效地实现翻译应用.在中国,大有约5500万人使用粤语(语 ...
- 达拉草201771010105《面向对象程序设计(java)》第八周学习总结
达拉草201771010105<面向对象程序设计(java)>第八周学习总结 实验六接口的定义与使用 实验时间 2018-10-18 1.实验目的与要求 (1) 掌握接口定义方法: (2) ...
- Spring Cloud Feign 组成和配置
Feign的组成 接口 作用 默认值 Feign.Builder Feign的入口 Feign.Builder Client Feign底层用什么去请求 和Ribbon配合时:LoadBalancer ...
- VMware安装CentOS6.X 系统
1.虚拟机中的"CD/DVD(IDE)"配置好Linux映像文件后,打开虚拟机,点击"开启此虚拟机" 2.进入光盘启动界面,选择第一项,表示安装升级Linux系 ...