ATX 系列 – 如何测试网易游戏阴阳师 (Android 篇)
本帖已被设为精华帖!,
这是一篇教你如何使用AutomatorX做游戏测的文章,当然这个自动化测试框架不限定于阴阳师,你可以参考文章提到的方法做其他游戏的测试。为了方便,后面AutomatorX我都简称为ATX。
前言
突然意思到ATX还没有出过一篇关于游戏测试的文章,比较讽刺的是ATX一开始设计的时候,就是为了游戏而设计的。不多说了,赶紧开写。
看文章之前你需要会的
- 命令行的简单操作
- 基础的Python
准备环境
先准备一台安卓手机,电脑上配置好Python环境。
根据 ATX官方主页上的说明,把环境配置好。 https://github.com/NetEaseGame/AutomatorX
需要用到的apk文件直接从阴阳师的官方首页上下载 http://yys.163.com/
打开控制台,接下来我们需要分析安装包的包名以及activity名
$ python -matx apkparse onmyoji_netease_1.0.7.apk
{
"main_activity": "com.netease.onmyoji.Launcher",
"package_name": "com.netease.onmyoji"
}
接下来有请我们要介绍下有ATX团队最新开发的,web-ide编辑器,有了它,脚本写起来快的可以飞起来。
安装方法参考 https://github.com/openatx/atx-webide
装完之后,cd到工作目录。
使用命令 python -m atxweb
启动之后,浏览器会自动打开,进入到编辑器界面。如下图所示。
根据图片中的提示选择设备,切换到Coding标签。网页版IDE编辑的文件,以及截得图片,最终都会保存在 命令行启动所在的目录下。
热身
接下来就可以开始写我们的第一行代码了
import atx
d = atx.connect()
print 'start time:', d.start_app('com.netease.onmyoji', 'com.netease.onmyoji.Launcher')
代码的作用,就是启动阴阳师这个应用,顺便统计出,启动的用时
在Screen区域拖动选中要截取的图片。比如
截到的图片会保存到本地
继续添加代码,来用脚本跳过游戏的自动更新
d.click_image(u"确定.1920x1080.png", timeout=8, safe=True)
timeout代表最多等待8s,safe=True
表示,即使图片没有找到也不报错
登录游戏
自动登录这部分大部分都是UI操作,需要用到uiautomatorview这个工具。在platform-tools这个目录下可以找到,更多的介绍可以看这篇文章:如何测试网易云音乐 (Android 篇),这里不做详细说明了。
下面直接贴出完整的进入游戏的代码
d(text='快速游戏').sibling(className='android.widget.ImageView').click()
d(text='快速游戏').click()
d.click_image(u"进入游戏.1920x1080.png") # 这个需要截图了
d(textMatches='接\s*受').click() # 因为“接受”之间可能会有空格影响
接下来需要输入角色名了,为了方便生成昵称,我们把这段代码加上去
import random, time, string
random.seed(time.time())
def id_generator(size=8, chars=string.ascii_uppercase + string.digits):
return ''.join(random.choice(chars) for _ in range(size))
接下来,通过这几行代码完成角色的创建
d.click_image(u"random2.1920x1080.png", offset=(1.2, 0))
d.clear_text()
d(text='确定').click()
d.click_image(u"创建角色.1920x1080.png")
代码中用到了offset,代码具体的实现的流程是,先找到图片的位置,然后向右偏移1.2倍的图片长度。
最后点击进入游戏
d.click_image(u'进入游戏.1920x1080.png')
先写到这里了,后面会继续补充
* 注:本文来自网络投稿,不代表本站立场,如若侵犯版权,请及时知会删除