作为一个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. 饿了么vue实现学习笔记

    技术栈:vue2 + vuex + vue-router + webpack + ES6/7 + fetch + sass + flex + svg以功能实现着手学习1. 定位功能 home.vue ...

  2. Python野生库

    https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted

  3. 招聘,api、app、web自动化,性能,持续集成,其他

    招聘: api接口自动化测试 app功能自动化测试 web功能自动化测试 性能测试 自动化平台与持续集成 其他

  4. 前端开发个人小结 · Retrospection的博客

    序 2018年转眼来到了最后一个月,算下来我进入前端之门也有一年了,虽然下半年由于忙于筹备毕业论文的相关事项,前端这一块有所放下,但是想想还是给自己这一年的学习做一个总结. 现代化软件开发确实是一个复 ...

  5. Python 十大语法

    前言 Python 是一种代表简单思想的语言,其语法相对简单,很容易上手.不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了.本文精心筛选了最能展现 Python 语法之精妙的十个知识 ...

  6. Implementing 5G NR Features in FPGA

    目录 论文来源 论文简介 基本原理 论文创新点 借鉴之处 论文来源 2018 European Conference on Networks and Communications (EuCNC),Ja ...

  7. maven笔记--持续更新

    笔记: 在创建maven项目的时候,如果用到servlet的时候,需要导入包,这时候,需要导入本地仓库的jar包,即依赖包.语法如下 <dependency> <groupId> ...

  8. 【技巧】歪脑筋优化flexbox瀑布流布局方案

    效果先行 需求 在大量"不定宽"元素并排的布局模式下,上图是我们想要的最佳布局但是FlexBox布局虽然枪弹但并不能完全呈现以上布局,于是我们需要结合FlexBox作下小的改动即可 ...

  9. 蚂蚁金服开源 | 可视化图形语法G2 3.3 琢磨

    G2 是蚂蚁金服数据可视化解决方案 AntV 的一个子产品,是一套数据驱动的.高交互的可视化图形语法. 经过两个多月密锣紧鼓的开发,400+次提交,G2 3.3版本今天终于和大家见面了.自上次3.2版 ...

  10. 前端开发--nginx篇

    安装和启动 Mac上搭建nginx教程 通过Homebrew 安装nginx brew install nginx 配置 添加配置文件在 /usr/local/etc/nginx/servers 目录 ...