前言:
游戏测试是软件测试的一种,主要用于确保游戏的质量和稳定性。接口测试是游戏测试中的一种重要方法,用于测试游戏的各种接口是否正常工作。游戏中的接口包括游戏引擎接口、网络接口、数据库接口等。
游戏行业的测试,业务规则上会根据每个项目的不同进行调整,所以是属于需要根据每个不同项目组去适当调整工作内容。客户端部分是基于引擎较多,
介于游戏因为封装的关系,除非在二端内部写完整过程的代码,但这个难度也太大。 我提供一些思路就是从 c->s 入手,维护起来也比较简单,以下文章介绍。
游戏内通信对象大体三类
- c->s
- s->c
- s->s
这点和软件是一样的,外部就多 1 个平台。
游戏行业做接口测试基本也和其他类型测试一样。
这里先介绍下,需要先准备:
- 游戏后台开启
- 起码 2 个游戏客户端。另外 1 个客户端观察游戏内的情况。
下面举一个例子,先找 1 个触发器,这里用的是聊天框,代码如下(貌似没.lua 的)
代码参考还是上面的 2)部分里的内容。1)代表原来的
function Chat:rueryChatCache()
local msg = "cQueryChatCache"
app.net:sendMsg(msg)
end
function Chat:requestChat(chatType, name, content) --1)正常情况
local msg = "cChat " .. chatType .. " " .. name .. " " .. content
app.net:sendMsg(msg)
end
function Chat:requestChat(5, damao, cQueryDailyTask) --2)使用聊天框做触发器输出协议
local msg = "cChat " .. chatType .. " " .. name .. " " .. content
app.net:sendMsg(content)
end
function Chat:requestChat(1, damao, msgtxt) --2)用于修改chatType类型
local msg = "cChat " .. chatType .. " " .. name .. " " .. content
app.net:sendMsg(msg)
end
function Chat:requestPublishNotice(content)
local msg = "cAnnounce " .. content
app.net:sendMsg(msg)
end
第一个例子需要检查的协议
1) cChat eChatType(1=私聊 2=本服 4=世界 3=公会 5=系统 服务器触发 不受理客户端 6=gm 公告) toName Content
需要分别检查 cChat 类型。
修改 chatType1,2,3,4,5…分别输出。
其中在另外 1 个客户端开另外 1 个帐号就可以看到文本里的内容。或者在后台可以显示输出内容
其中输出类型 5,另外 1 个客户端是不可见的。
第 2 个例子协议(用于社交关系变更)
2) cBlacklistModify nType(1=拉黑 2=撤销) idTarget
cBlacklistModify nType 的 2 个类型的测试,可以同时对 1 个有效的用户名。 检查 s->c 回来的内容
nType 1or2 idTarget 传不存在的用户,检查 s->c 回来的内容
这样可以简化测试,并且不会有遗漏,绕过了很多操作步骤。具体可以想想平时你如何拉黑的。
在介绍 1 个好东西,关于可以便捷的调用接口的方式
c->s 的消息都可以用以下图片里的,后面 2 段内容,在 chat 聊天界面输出就可以自动调用 c->s 的协议内容。
例如 cQueryDailyTask 请求任务
代码参考还是上面的 2)部分里的内容。1)代表原来的
在游戏后面内有很多协议需要根据检查成功和失败的返回参数,也需要进行创造力的去组合测试。
下图就是一个游戏很小一部分协议的文档截图。
协议的说明被单独抽离出来,维护的话就是协议如何不失效就一直可使用,失效就备注去掉。内容被修改在文本里备注即可。所有文本放在 1 个目录下,用 notepad 类似的都可以读取查找具体协议类。
作为一位过来人也是希望大家少走一些弯路
在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。
(软件测试相关资料,自动化测试相关资料,技术问题答疑等等)
相信能使你更好的进步!
点击下方小卡片