vlambda博客
学习文章列表

游戏测试中,这几个接口测试知识点不能忽略

游戏行业的测试,业务规则上会根据每个项目的不同进行调整,所以是属于需要根据每个不同项目组去适当调整工作内容。客户端部分是基于引擎较多,介于游戏因为封装的关系,除非在二端内部写完整过程的代码,但这个难度也太大。 我提供一些思路就是从 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)endfunction Chat:requestChat(chatType, name, content)    

--1)正常情况    local msg = "cChat " .. chatType .. " " .. name .. " " .. content    app.net:sendMsg(msg)endfunction Chat:requestChat(5, damao, cQueryDailyTask)   

--2)使用聊天框做触发器输出协议    local msg = "cChat " .. chatType .. " " .. name .. " " .. content    app.net:sendMsg(content)endfunction Chat:requestChat(1, damao, msgtxt)  --2)用于修改chatType类型  local msg = "cChat " .. chatType .. " " .. name .. " " .. content app.net:sendMsg(msg)endfunction 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 nType2个类型的测试,可以同时对1个有效的用户名。检查s->c回来的内容nType 1or2 idTarget 传不存在的用户,检查s->c回来的内容这样可以简化测试,并且不会有遗漏,绕过了很多操作步骤。具体可以想想平时你如何拉黑的。

→ 再介绍1个好东西,关于可以便捷的调用接口的方式

c->s的消息都可以用以下图片里的,后面2段内容,在chat聊天界面输出就可以自动调用c->s的协议内容。(例如:cQueryDailyTask 请求任务代码参考还是上面的 2)部分里的内容,1)代表原来的。)

在游戏后面,有很多协议需要根据检查成功和失败的返回参数,也需要进行创造力的去组合测试。在实际工作中,很多 游戏中都会存在一些协议文档的内容。一般情况下, 协议的说明需要被单独抽离出来。
平时维护的话,就是如果协议不失效,就可以一直使用;失效就需要备注去掉。内容被修改的话, 也需要在文本里备注说明。并且,一定要把所有文本放在 1个目录下,后期使用notepad类似工具,可以读取查找具体协议类。


游戏测试中,这几个接口测试知识点不能忽略

游戏测试中,这几个接口测试知识点不能忽略

游戏测试中,这几个接口测试知识点不能忽略

点击,识别下方二维码,了解软件测试相关课程。

游戏测试中,这几个接口测试知识点不能忽略
游戏测试中,这几个接口测试知识点不能忽略

点击,识别下方右侧二维码,获取软件测试技术贴。

游戏测试中,这几个接口测试知识点不能忽略

点击下方“阅读原文”,挑战 年薪20万 ~