游戏测试之WPE协议测试(一)

使用WPE对游戏进行协议测试是游戏测试中最常用的方法,在这篇文章中让大家对协议测试有个大概的了解。
WPE工具:WPE是网络封包编辑器,可以模拟客户端给服务端发送协议的工具。它属于网络安全防护的控件。下图是WPE的界面显示

WPE

WPE原理:网页游戏的结构属于B/S(浏览器/服务器模式)。WPE可以截取网络上的信息封包,然后分析和修改里面的值。
Client/server模式网络游戏,我们的信息全在服务器上面,想从服务器上修改我们的个人用户信息,可能性为微乎其微,客户端安装在你的机器上, 玩游戏的时候,你发出指令,其实就是向服务器发送封包,服务器接收到封包后进行分析,然后返回结果,结果也是以封包的形式发送到你的机器上,你的机器接收到後就可以看到结果了。
其实也可以用图的形式来让WPE的工作原理显得更直观一些:

WPE工作原理

客户端里存在着很多的逻辑判断,WPE的目的就是无视客户端的逻辑判断,直接告诉服务端需要做什么动作操作(包括非法操作),因此我们以此来测试服务端的代码是否足够健壮,是否有一个正确的逻辑判断。
WPE用途:拦截客户端往服务端发送的封包(踢下线);重发客户端往服务端发送的封包(重复领取奖励);递进客户端往服务端发送的封包(领取下一档奖励);修改客户端往服务端发送的封包(替换消耗道具ID,修改购买数量);拦截服务端往客户端返回的封包;修改服务端往客户端返回的封包。

WPE常用测试点:在使用WPE进行协议测试时有一些常用的测试点,比如说用商店封包替换ID买商城的物品ID;对等级奖励的领取封包进行递进;修改道具购买数量(溢出);修改登录玩家信息里的玩家等级;重发正确答案的封包(答题);重复购买有购买次数限制的道具。
wpe主要测试各个判断点(条件判断),容易出现错误的功能点(溢出),测试程序有没有进行逻辑判断,以及容错的判断。所以在日常工作中加入wpe工具用于测试(协议测试),可以弥补我们黑盒测试方法里没法测试的测试点进行测试,使得测试点覆盖的更广,使程序代码的健壮性更强。

在游戏测试的初期采用协议测试来判断客户端和服务端协议有无问题可从项目初期避免了一些严重bug,当然,在测试之前我们需要向客户端或者服务端了解到双端所使用的协议号。这样我们在协议测试时便可做到有据可依,避免错误。想要使协议测试这一块更加的完善,可能会花费很多的时间和精力,这个过程中就需要小伙伴们相互协调、交叉测试了。
 
本篇文章只是简略的介绍了WPE的协议测试,在接下来的文章中会有更详细的介绍。



留言