作为一个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自动化测试集成的更多相关文章

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

    版权声明:该文章为AirtestProject原创文章:允许转载,但转载必须注明“转载”并保留原链接 前言 本文档将演示使用`AirtestProject`专用的编辑器AirtestIDE,编写`Ai ...

  2. 使用Airtest进行UI自动化测试

    一.环境搭建 1.Airtest客户端下载 访问官网http://airtest.netease.com/,根据自己的系统下载相应的客户端安装: 2.python工具下载与环境搭建 在本地python ...

  3. Unity 下集成第三方原生 SDK,以极光厂商通道为例

    Unity中集成三方SDK有两种方式: Unity 项目开发中时常有集成 Android 第三方 SDK 的需求,比如接入第三方推送,分享等功能.而第三方 SDK 的集成文档提到的往往是基于原生 An ...

  4. 关于基于python2.7的unity自动化测试框架GAutomator测试环境的搭建(源码网盘下载地址:https://pan.baidu.com/s/1c2TXwtU)

    关于基于python 2.7的unity自动化测试框架GAutomator测试环境的搭建 百度云盘链接(思维图学习资料):https://pan.baidu.com/s/1dFWExMD 准备工作(具 ...

  5. Airtest ——poco

    1.  Pymysql(No module named ‘cryptography’) pip install cryptography pip install paramiko 把 cryptogr ...

  6. unity android 集成指南

    原地址:http://blog.csdn.net/alking_sun/article/details/36175187 1.安卓层开发并暴露接口.   launcher activity(以下称为U ...

  7. linux+jenkins+python+svn 自动化测试集成之路

    本文背景: 背景1---个人基础: 本机win7上安装pycharm,使用python搭建API自动化测试框架,本地运行Pass.本机上搭建jenkins,创建测试任务,定时构建Pass. 背景2-- ...

  8. airtest+poco多脚本、多设备批处理运行测试用例自动生成测试报告

    一:主要内容 框架功能及测试报告效果 airtest安装.环境搭建 框架搭建.框架运行说明 airtest自动化脚本编写注意事项 二:框架功能及测试报告效果 1. 框架功能: 该框架笔者用来作为公司的 ...

  9. unity, iOS集成微信

    将微信sdk直接拖进xcode会导致Library Search Paths是错的,需要手动改成如下样子(蓝色选中部分)才能通过编译:

随机推荐

  1. 仿射密码Python实现

    算法分析 仿射密码结合了移位密码和乘数密码的特点,是移位密码和乘数密码的组合. 仿射密码的加密算法就是一个线性变化,即对明文字符x,对应的密文字符为y=ax+b(mod26)其中,a, b属于Z26且 ...

  2. docker-compose的安装和设定

    docker的1.12版本中,swarm已经合体,docker-engine/swarm/docker-compose的三件套装已经变成两件.后续会不会将docker-compose进一步合体呢,想做 ...

  3. Kafka常用命令及配置文件

    创建topic,指定备份分区数 bin/kafka-topics.sh --create --zookeeper zk:2181 --replication-factor 2 --partitions ...

  4. 网络健身O2O,能火吗?

       谈到中国想要020的那些项目,总给人一种土豪烧钱的怪异形象,而最终的成败因素也变得简单,也即谁能烧到最后,谁就能称霸市场,可问题在于,前期投入太多,谁也不甘心主动退出,最后,只落得个油尽灯枯.这 ...

  5. PM2.5如何引发心脏病的?

    过去的几十年里,科学家们一点一滴地积累起关于空气污染如何威胁人类健康的新认识.他们的注意力大多集中在肺部疾病,包括癌症上面.对空气污染具体危害的认识越来越多,但是对污染的控制和治理却显得举步维艰.面对 ...

  6. 微软亚洲研究院的“哈利·波特”:Thomas Moscibroda

    在微软亚洲研究院,有一位名为Thomas Moscibroda的研究员几乎是无人不知.无人不晓,江湖人送外号"哈利·波特".Thomas认为他这么"红"是因为他 ...

  7. C++走向远洋——31(六周,项目一,1.1)

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:fenshu.cpp * 作者:常轩 * 微信公众号:World ...

  8. scrapy爬虫-scrapy-redis分布式

    1.如何将一个scrapy爬虫项目修改成为一个简单的分布式爬虫项目 官方文档:https://scrapy-redis.readthedocs.io/en/stable/ 只用修改scrapy项目的两 ...

  9. js移动端滑倒顶部加载历史消息解决方案!

    最近做了一个语音直播聊天的项目,有一个功能是当没有直播时,进入房间可以查看历史消息,滑动到顶部加载之前的历史消息,我用jquery scroll事件,来判断是否滚动到顶部,问题来了: 首先触发请求事件 ...

  10. 谈谈集合.Queue

    之前说到,Java中集合的主要作用就是装盛其他数据和实现常见的数据结构.所以当我们要用到"栈"."队列"."链表"和"数组&quo ...