51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2889|回复: 2
打印 上一主题 下一主题

[转贴] 接口自动化测试在游戏测试中的运用

[复制链接]
  • TA的每日心情
    慵懒
    2022-7-23 11:23
  • 签到天数: 316 天

    连续签到: 1 天

    [LV.8]测试军长

    跳转到指定楼层
    1#
    发表于 2017-12-29 16:37:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    一、游戏为什么要做接口测试
      如果只是单纯做游戏的功能测试(黑盒),对于一些问题就无法测试到,游戏上线后会产生严重的后果。
      举个例子,重复领取奖励的问题:例如玩家完成一个任务后去领取奖励,领完奖励后【领取】按钮就消失了,对于正常玩家是没有问题的。但如果领取奖励的判断只依靠客户端来做(领奖后按钮消失),而服务器没做判断,那么遇到坏玩家时,就会被刷奖励(例如玩家截取到请求,通过发送请求可以重复领取奖励;或者在领奖时快速点击领取按钮,也会得到多次奖励)。
      因此,游戏的接口测试作为功能测试的补充,是十分有必要。
      二、游戏如何去做接口测试
      1、如何获取接口协议
      由于我们游戏项目的通信协议,要么是TCP、要么是WebSocket,并没有通用的第三方工具直接获取接口协议的。因此我们做接口测试是依赖研发写的工具,用来模拟协议的发送与返回结果。
      2、如何做接口测试
      接下来我根据自己负责的游戏项目,来具体说一下游戏的接口测试是怎么做的。
      (1)拿到接口协议文档、返回码文档、参数配置文档等等,熟悉上述文档与游戏玩法,准备接口测试用例。



      (2)拼凑所需测试的接口协议
      协议模板为:
      tools:handle(角色ID, 协议号, {pt_协议号_c, 参数1, 参数2, 参数3.....})
      例如上面截图中,我要升级剑士的旋风斩技能,那么协议是:
      tools:handle(1678,5702,{pt_5702_c,1005})
      (3)登录游戏账号,打开接口测试工具,准备好测试条件后,发送接口协议,查看返回结果是否符合预期。

      例如我是法师职业,去发送一条升级剑士技能的协议,返回结果为1902,查看返回码文档,显示为技能不适合该职业,符合预期。

      三、总结:
      1、由于我定义的游戏接口测试是作为功能测试的补充,因此并不需要每条协议都去测试,而是挑选游戏核心功能的协议,或者是一些容易被刷的协议。例如充值、领取奖励、出售物品、活动开启结束等等。
      2、拼凑接口协议,要根据具体情况进行拼凑,前提是要熟悉接口协议文档与参数文档。因为有的协议是不带参数的(测试时不用考虑错误参数的情况),而有的带一般参数(就是上面我举例升级技能的协议),最怕的是带嵌套参数(这个需要把多条协议嵌套在一起,组合成一条协议去发送,测试的复杂度也比较高)。
      3、接口的测试,重点要考虑边界值(例如条件不满足,达到下限、上限等),以及错误参数情况(例如负数、0、特殊字符等)。而且测试条件需要熟悉游戏的玩法。
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    3#
    发表于 2022-2-10 17:44:31 | 只看该作者
    您好,请问方便细聊一下关于游戏性能和自动化测试的相关内容吗
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 13:35 , Processed in 0.064937 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表