基于TCP协议的游戏代理接口测试工具<一>:设计初衷与工具构想

这篇具有很好参考价值的文章主要介绍了基于TCP协议的游戏代理接口测试工具<一>:设计初衷与工具构想。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

设计初衷

大势所逼

众所周知,区别于HTTP之类的协议,由于tcp协议包体通信的高度定制化导致业内基本没有通用的接口工具用于游测人员进行日常使用,大部分的情况是基于这种状态下只能进行测试工具定制。在日益兴盛的游戏行业中,对于游测的各种测试维度的要求也在逐步增长,而接口测试,也就是常规所说的协议测试在日常的测试工作中重要性和占比也是高居不下,毕竟直接关系到游戏的营收和寿命,从而在自我折磨的道路上越走越远。

难点与破局

  • 高度定制化:由于tcp在游戏内应用的特性,在协议的约定上面就必定存在各种各样的特殊设定,常见的有字段类型-int、string、array之类和定制类型、字段位数、包体预留位乃至加密字段等等。所以要去模拟协议和解析协议就必须要实现一套与双端(C/S)一致的封包和解析机制;
  • 不可避免的自动生成:由于需要定制解析和封包,所以必须要面临的一个问题就是要构造出所有协议的封包和解析方法,而这个时候面对整个游戏项目下的协议处理,手写方法明显是不现实且成本巨大的。因此必须要根据公司或者项目组内的生成方式再一模一样复刻出双端协议封包和解析的自动生成方法(PS:当然如果测试权限够或者公司内部有单独的测试版本可供使用-即测试可以直接改造游戏代码的话就不用重复造轮子了);
  • 测试定制化:测试工具做出来肯定是为了给测试服务的,所以测试用途、便利性、功能拓展方面也需要有充分的考虑。以常规的协议测试举例:测试人员通过wireshark之类的工具抓取到协议包,提取到data包之后,再通过对照协议规则进行对应数据提取,提取出来后再对数据进行编解码从而得到可读的数据,然后才能进行数据验证,判断协议数据是否正常。在这个流程上面就能提取到多个工具的测试用途需求:协议抓取、协议解析、可视化,同时延伸出:协议拦截、特定协议抓取、二次封包、包体构造转发等等;

基于TCP协议的游戏代理接口测试工具<一>:设计初衷与工具构想
基于TCP协议的游戏代理接口测试工具<一>:设计初衷与工具构想

  • 承上启下-破局:基于完整的解析机制下的压测,已经存在上述机制之后,批量真实登录不是梦,用于服务端场景压测、登录压测等等用途也是顺势而为;接口测试自动化开展,基于协议拦截和包体封装的机制可以轻松实现协议录制,然后辅以自动化测试框架pytest+allure即可逐步实现接口自动化。

工具构想

工具开发历程(记录走过的弯路<O…O>):简易测试客户端–>游戏内置可视化工具–>接口代理工具。
提效是测试第一生产力(顺便创造摸鱼空间,emm,顺便…)

  • 简易测试客户端:作为最初版的接口工具,它的初衷往往是朴素的,当时由于组内测试人员较少(emm,没错就在下一个),加上公司体量相对较小,个人算是组内引进的首任测试人员,各种基建和测试方面的构建基本都是从0开始,所以初版的工具只是为了解决一个小小问题:批量创建测试号。它的设计就是基于Python写一个简易的客户端用于连接游戏服务器,然后定制协议内容根据设定的顺序发送给到服务端,由于当时缺少解析机制,全靠手写协议解析,从而导致可扩展性很差,维护成本也很高,后续在应用时测试用途也逐步变成有限的几种。当前如果能加上前面所说的全套解析机制后,就能发挥更大的作用;
    基于TCP协议的游戏代理接口测试工具<一>:设计初衷与工具构想

  • 游戏内置可视化工具:在上一代的基础上痛定思痛:手动编码折磨、无法支持可视化,为了避过协议解析这块的工作(为什么不直接上解析?实在是规则太多太麻烦),调整方案改为在游戏客户端内搭建一个工具功能。通过对游戏客户端内部协议通信基类的分析,发现在基类的解析方法中可以很方便的拦截和抓取到明文的协议内容,所以心生一计-‘借鸡生蛋’,在客户端现有的机制上增加一个测试模块,用于获取协议基类的通信数据同时通过unity的Gui搭建一个内嵌的展示面板展示出协议数据和其他操作。但是这个方法面临一个问题就是内嵌测试代码到游戏主题中是一个比较大的风险项,尽管采用的是非拦截式(即不拦截协议只收集一份)的方式,在缺少特定分割的测试环境的情况下也是有不少的风险,同时内嵌的方式意味着工具的兼容性会相对一般,针对不同项目要额外处理接入,另外无法支持多用户登录,最后在组内讨论缺少测试环境情况下,风险不可接受,该方案夭折(不过有环境和条件的同仁可以试试,业内也有类似的做法);
    基于TCP协议的游戏代理接口测试工具<一>:设计初衷与工具构想

  • 接口代理工具:为了在方案二的基础上完全与游戏版本解耦,通过搭建中继服务器来进行协议
    次处理。游戏客户端连接中继服务器,然后中继服务器再连接游戏服务器,从而实现游戏客户端和游戏服务端所有的通信数据都经由中继服务器进行转发处理,而中继服务器可以对转发的数据进行二次的处理,并且支持可视化的需求。在此基础上搭建完整的解析机制,可拓展新更强,同时可以支持即插即用。
    基于TCP协议的游戏代理接口测试工具<一>:设计初衷与工具构想文章来源地址https://www.toymoban.com/news/detail-436312.html

到了这里,关于基于TCP协议的游戏代理接口测试工具<一>:设计初衷与工具构想的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 接口测试工具——Postman测试工具 & Swagger接口测试+SpringBoot整合 & JMeter高并发测试工具

    头部携带token 类型选择JSON https://apifox.com/ swagger2,较多 swagger3, Knife4j的前身是swagger-bootstrap=ui,前身swagger–bootstrap-ui是一个纯swagger–ui的ui皮肤项目 https://doc.xiaominfo.com/docs/quick-start 底层就是swagger 序号 注解 作用 1 @Api(tags = “图书的api接口类”) 左侧名字 2 @ApiOperation(“findPa

    2024年02月12日
    浏览(63)
  • TCP Socket Client 测试工具,并发测试

    TCP协议 Socket客户端测试程序 发送数据支持ASCII与16进制格式 可以模拟并发压力测试 创建终端,然后发送数据   工具下载  

    2024年02月12日
    浏览(41)
  • 如何使用Python编写一个代理池测试工具

    部分数据来源: ChatGPT 背景:         在进行网络爬虫时,我们经常需要使用代理池来防止IP被网站禁封。代理池是一个保存多个代理IP地址的数据库,我们可以从数据库中随机选择一个代理地址来进行网络请求,避免过多请求来自同一个IP地址。 为了提高爬虫程序的稳定

    2024年02月08日
    浏览(41)
  • 一文搞定接口测试及常用接口测试工具解析

    目录 首先,什么是接口呢? 一、常见接口: 二、前端和后端: 三、什么是接口测试: 四、接口组成 五、为什么要做接口测试: 六、接口测试怎么测:  七、用什么工具测 接口一般来说有两种,一种是程序内部的接口,一种是系统对外的接口。 系统对外的接口:比如你要

    2024年02月03日
    浏览(89)
  • 接口测试及接口抓包常用的测试工具

    接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。 是节省时间前后端不同步时便可以进行测试; 是测试一

    2024年02月12日
    浏览(49)
  • TCP&UDP测试工具的使用

    1、在电脑上打开测试工具 2、该测试工具分为客户端和服务器两类,首先创建一个服务端 3、默认端口号点击确定 4、点击启动服务器,此时我们可以通过外部客户端与该服务器相连 5、在此,我们重新打开一次软件,模拟客户端并与服务器通信,打开以后,选择创建连接 

    2024年02月11日
    浏览(50)
  • 接口测试流程、测试点和测试工具

    目录 前言: 一、什么情况下开展接口测试? 二、如何进行接口测试

    2024年02月11日
    浏览(60)
  • 压力测试+接口测试(工具jmeter)

    jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单。因 为jmeter是java开发的,所以运行的时候必须先要安装jdk才可以。jmeter是免安装的,拿到安装包之后直接解压就可以使用,同时它在 linux

    2024年01月17日
    浏览(56)
  • 接口测试及接口抓包常用测试工具和方法?

    作为测试领域中不可或缺的一环,接口测试和抓包技术在软件开发过程中扮演着至关重要的角色。不论你是新手还是有一些经验的小伙伴,本篇文章都会为你详细介绍接口测试的基本概念、常用测试工具和实际操作技巧,让你轻松掌握这一技能。 接口测试:什么是接口?为什

    2024年02月12日
    浏览(44)
  • 软件接口测试是什么?有哪些好用的接口测试工具?

    在软件开发中,接口是不可避免的。软件接口测试是一种验证应用程序接口是否按照设计规范进行交互和协作的测试方法。接口测试是将模块之间的接口连接在一起以进行完整系统测试的关键部分。 当软件开发过程中不同模块之间需要数据交互,采用接口协议来实现模块之间

    2024年02月11日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包