游戏测试之接口工具篇(上篇)

这几天在折腾内网的接口测试工具时,想起这几年做游戏接口测试时,也尝试了若干工具软件,在此简单记录下用过的接口工具,本文记录的是可以用于接口测试的第三方工具软件。

软件清单:

WPE,Charles,Loadrunner,烧饼修改器

项目背景

几个项目下来,前后端都是采用Socket协议通讯,数据包格式用过Json,AMF3,Protobuf。

接口测试的重要性

接口测试要不要做,就举两个如果没做接口测试,有可能会出现的bug吧:

  • 重发领奖封包,可以重复领奖。

  • 背包出售道具,修改售价溢出,获取大量游戏币。

正式开始

WPE

WPE是一个经典的网络封包编辑器,可以拦截,修改,重发Socket协议的封包,对于爱折腾的游戏玩家,是必备工具。操作简单,入门教程上网一搜就不少。

WPE也是不少项目作为接口测试工具的首选,我也用过一段时间,在使用的过程中,有几个点,不太好用。

  • 大部分游戏都采用二进制加密传输封包,WPE拦截到的封包,可读性不佳,修改封包的指定字段的数值也比较麻烦。
  • 发送封包后,没有提供返回结果的显示,操作是否生效只能在游戏内确认。
  • 虽然可以把发送过的封包保存起来,但是作为测试用例来统一管理是挺不方便的。

Charles

Charles可以查看所有连接互联网的Http通信,也支持修改和重发,但是对于Socket协议,不支持啊(Fiddler同理),而我经历过的项目全是Socket通讯的~

Loadrunner

一提到Loadrunner,第一个联想词就是压力测试,其实用它来做接口测试,也是可以的。

有两种方式,一种是直接录制Socket通讯的请求和返回,另外一种是使用Java Vuser自行开发接口测试脚本,之前碍于编程水平的限制,只使用了第一种方式,用起来也是有不方便的地方。

  • 对于Socket通讯,录制起来,效果和WPE是一样的,回放的时候可以查看返回,但是可读性依旧不行。
  • 游戏大部分都是自定义数据包结构,Loadrunner无法直接解析返回数据包的内容,需要编写解包的代码。
  • 运行起来太重量级了。

烧饼修改器

烧饼修改器是一个运行在手机上的app,需要Root或者越狱,可以修改正在运行的游戏的内存数据,从而曲折地测试类似于背包出售是否有负数溢出的接口漏洞这类问题。从可测试的接口范围看,是大大不如WPE和Loadrunner的。只能测试到参数列表中,包含游戏内数值的接口协议。

同类软件,八门神器,PC平台的CE。