游戏测试 游戏测试 12 月 份集中答疑帖子

陈子昂 · 2018年12月17日 · 最后由 HangwahAu 回复于 2020年03月12日 · 5568 次阅读

答疑讨论贴

游戏测试也是测试的分支之一。
对游戏测试曲解性比较强 百度百科的游戏测试

实际上根据游戏类型 + 载体 + 引擎,分别有不同的测试业务类型和侧重方向。
上面之外也有平衡数值测试,专项性能,专项弱网/安全测试,压力测试,协议接口测试,稳定性测试,兼容性测试,评测等等
常用的测试开发语言也有很多分类,大部分是按地域 python2,python3,Php,Lua,C++,java1.7 及以上,go,C#,Scala
常用的协议是 Tcp+ 混合协议,Tcp+pb,Tcp+ 自定义二进制,Tcp+ 带包头/不带包头 UDP,减尺寸 Tcp,tcp-rpc,websocket(二类),https/http

Q&A

之前 QQ 群里回答了一批问题,但是没有沉淀。所以希望有问题的同学,可以在下文里贴出自己的问题,看到留言后,社区这边会尽量回答。如果回答不出来,也会邀请其他小伙伴回答。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 23 条回复 时间 点赞

请问:游戏 UI 自动化采用什么框架比较合适并且进行持续集成落地
在没有接口文档的情况,手游接口自动化测试应该如何开展?接口自动化的侧重点一般应该放在那些地方

守护 回复

我一条条回答
游戏 UI 自动化 不考虑使用 airtest IDE,而是使用导入库到工程里去写。
学习自动化 先要学习骨架 前置状态,拉起,怎么样搭建项目结构,如何添加到测试套件 整个工程执行顺序,是否需要 PO 设计模式
骨架 前置状态 类设计,哪些类继承于哪些类。从 model 层做通用操作,在到实体类 page 层去写具体界面场景元素,在往写逻辑 page 层,最后 dao 层存一些状态数据。
model -->entryPage-->page-->testcase。testcase 考虑按什么来划分,文件夹还是文件,起手文件是什么。setupClass 装饰器用到哪里。
拉起,手游 adb 拉起,先判断 adb 端口有没有占用,如果没有占用,拉起后,把手机的硬件码当对象存下来写入持久层,这台手机被占用了。
中途 adb 断了,会重启动 1 次 adb 服务,并且通知自动化程序,写入控制台或者日志。拉起是否需要记录其他硬件信息,记录后写入 dao 层

在学习散手 像开发的语法学习,状态机的学习
然后最后是学习自动化的库
前面 2 段学完了,其他就是一点点堆量。

守护 回复

接口没有文档,抓包看太苦了。只有 https/http 或者 websocket 才可以抓包。tcp 大多有加密
接口测试也是一定要和压测一样,要不把加密规则给你,你按着写一次或者载入注册加密的.dll。要不就是去除加密。
接口侧重点在于异常数据处理。我觉得这个登录接口后在问。
接口代码工程同自动化,核心在骨架建设。

陈子昂 回复

从难度来看,游戏 UI 自动化测试和普通 APP、WEB 自动化测试主要有什么区别?

守护 回复

上面问题可以刷新下再看。
游戏 UI 自动化,因为引擎句柄,不能用 appium 等展开,web 游戏时期主流的非 Unity 的能用 selenium,后面 flash 版本更新就不行了。而且自动化更多的是考虑需要查找的元素在不在舞台,并且在什么样的位置,多用图形识别。现在有框架可以展开,但是程序字在游戏内很少,美术字其实就是一张图。查询更高效设计到寻图的算法。卡牌游戏容易做自动化,如果是 moba 和 arpg 还要具体载入到出现在界面上的特效进行反转角色和拿特效名字和日志确认,方式上差异就很大了。。
app 和 web 差不多,只是用的驱动序列化指令的框架不一样,只考虑如何找到这个元素,展开元素的位置有主流的定位器。除了部分悬浮球用多次密集点击和 toast,其他都一样。

如果要完成 UI 以及接口自动化落地,Python 的学习路线应该是怎么规划?

😂 其实可以抽个时间把百度百科的内容修改一下

问下 TCP 的接口自动化测试怎么做 @ 陈子昂

守护 回复

先学习完 pytest 或者 unittest 的库,在把 adb 命令自动化需要用到的封装 1 个工具文件,在来找我啊。。

接口自动化 不需要考虑异步编程。
TCP 一般是有状态长连接的,先需要理解不同字节在自己写的语言里的是如何写的,字节数组是什么,字节数组如何切割和切割后存储对象,对象生命周期可以让下文用。
先需要知道你的协议信息,先拿 1 个登录来做。
1.网络字节序大小端,这个我之前有个文章可以看看。
2.tcp 具体包头和包体的数据格式 问程序要。比如 包头 12 个字节,包头部分 4 len |2 error|2 msgid|4 加密 包体数据结构确定是二进制结构体还是 pb 结构。压包时需要按顺序正序列化,包头里面的长度需要确定是包含包体还是不包含包体。
比如 包头 4 个字节切出来长度取下发现是 27 个字节,因为包头 12 个字节,这个 27 个字节是否包含包头的 12 个字节,就是这个意思。
上面是例子,不同游戏不一样,加密或者压缩部分可以让开发去掉,如果不去掉需要先解析出来。
第 2 步自己写完后,就可以发给服务器看是否能收到信息,也就是联调。这个群里已经教出来好多个了。

主要懒得去改,还有就是现在对这个百度写的提出质疑的也不多。

心态方面的问题。自知好高骛远,眼高手低,浮躁中不知道怎么处理自身的问题。
91 年的。入行游戏行业第三年,运营、数值、UI 都沾过手,最终定位到测试岗位并执行两年。当接触到的知识不能达到学以致用的地步后感觉像是自己用心在熬屎一样荒废了时间。基于当前工作的质量保证自知做的不够好,但依然急切的去花时间学习语言和工具。感觉像走火入魔了。

长颈鹿 回复

测试开发 可能和如何带版本和做项目是 2 件事。最后会发现还是一件。这个只要抽取时间出来集中做 1 个。
我以前和你一样,大部分岗位都转过一圈,之前业余写点工具,正职测试开发也没多久。当时学的时候还是比较拼的,天天 3 点

陈子昂 回复

多谢老哥。集中精力先搞搞测试开发,不然没有竞争力。

想问下 一个黑盒测试 想做测试开发 在游戏行业 大致的一个学习方向是怎么样的 现在是自己一个人在发行公司 测试自家发行的工作,希望能提高,不知道路怎么走

Kirito 回复

做游戏测试做了 1 年半的时间 在久游 育碧 待过,在腾讯做过外包 一直都是黑盒方面的东西 没有程序基础尝试去学习了 python 但是不知道如何应用在游戏项目中 很迷茫现在工资算黑盒中比较高的,想提升自己的能力,希望能给点方向

游戏中的内网充值测试需要考虑的是哪些?从哪里开始着手?

18楼 已删除
Kirito 回复

同问🙏

游戏内摇杆的操作需求:
1.点击固定区域唤出摇杆,固定区域无操作的时候摇杆隐藏;
2.长按控制移动和方向。

目前摇杆功能程序已实现。现在需要写个脚本来模拟摇杆操作,目的是控制角色无规律的移动遍历场景资源。
目前自己了解到的就只有模拟鼠标点击区域,但是无法实现唤出摇杆和长按移动,现在没有一点头绪。

求助。

问一下大佬通常 fps 等性能指标除了用平台还会用什么办法来获取呀

Kirito 回复

我跟你类似,以目前的状态来看,暂时先从黑盒目前工作中遇到的问题入手。
比如,我们项目测试环境搭建比较繁琐,那考虑如何用 python 写一个脚本或者工具之类的,能一键搭起测试环境。
再比如,每次合服时,都需要从线上环境拉取数据(当然不是真实的线上环境,DBA 那边会把线上数据恢复到一个测试环境里,我们再进行操作),这个操作每次都要做,而且每次做起来都很麻烦(要临时写各种 SQL 语句啊之类的),自己就写了一个一键拉取需要数据的脚本(当然,期间自己自学了一些 SQL 语言)。
诸如此类,一点点从小工具做起来。
下一步,自己打算了解客户端是如何发消息给服务器,明白了这块之后,尝试做接口的自动化测试。

游戏测试中我们目前只是做了协议这块的测试,接口中还有哪些内容是需要覆盖测试的?

最近在轻游戏发行公司工作,公司目前想我着手游戏自动化测试,但我不知道如何入手,之前是在 Android 原生开发的。请指点一下,顺便问一下群号,谢谢。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册