作为一个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. Nginx笔记总结十九:nginx + fancy实现漂亮的索引目录

    编译:./configure --prefix=/usr/local/nginx --add-module=../ngx-fancyindex-master 配置: location / { fanc ...

  2. PO设计模式-实现移动端自动化测试

    开发环境:python 3.6.5 + selenium 2.48.0 + pytest框架 + Android 5.1 工具:pycharm + Appium + Genymotion 测试机型:S ...

  3. Typescript - 变量类型

    原文:TypeScript基本知识点整理 一.number let num1 : number = 20; let num2 : number = 175.5; let a1 : number = I ...

  4. Substring(Codeforces-D-拓扑排序)

    D. Substring time limit per test 3 seconds memory limit per test 256 megabytes You are given a graph ...

  5. JavaIO 流(1)IO流介绍

    IO流定义: 流的本质是一组单向有序,分起始和终止的数据传输过程.需要导入import java.io.* IO流分类: 按数据类型分为:字节流和字符流 字节流: 按字节进行读取(可以处理任意类型数据 ...

  6. vmware增加新硬盘无需重启生效

    echo "scsi add-single-device 2 0 2 0" > /proc/scsi/scsi # echo "scsi add-single-de ...

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

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

  8. 一个异步访问redis的内存问题

    | 分类 redis  | 遇到一个redis实例突然内存飙高的案例, 具体症状如下: 客户端使用异步访问模式 单个请求的回包很大,hgetall一个8M的key 由于访问量比较大,已经登录不上red ...

  9. 漫谈国内外Android生态:华为发布的 HMS 服务,对 Mate30 系列无法搭载 Google GMS 的补偿有多大(原创)

    如果既用过iPhone,也用过国际版Android,还用过国内的安卓,(并且这三种都用了半年以上),就能体会到GMS多重要.可以说,iOS的体验大幅度领先于国内的安卓,一多半的原因是国内安卓没有GMS ...

  10. PyQt5之俄罗斯方块

    上个礼拜有个需求,对csv里的数据按条件进行拆分计算.一想到要做计算,少不了pandas.还有个要求最好是生成命令行工具或者带有界面. 于是尝试下,使用PyQt5做了个简单的UI界面给程序包个壳子,然 ...