接口测试系列 | 莉莉丝公司接口测试实践分享

本文详细介绍了游戏接口测试的挑战、解决方案和实践案例,包括网络层处理、接口文档整理、测试用例设计、协议录制等功能。重点讨论了自定义协议、断言设置、中间服务实现以及自动化测试工具在提高测试效率和准确性上的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Testerhome社区爱好者合力编写了《2021接口测试白皮书》,并于今年2月底发布。本文节选自其中的的「莉莉丝公司接口测试实践分享」章节。点击链接可下载完整版《2021接口测试白皮书》

莉莉丝质量管理中心自研伏羲的第三个版本,逐步往工业化发展,接口测试任务指派,接口进度工作流等等功能介绍。

目前在公司内部服务了9 个项目,共 50+版本,接口 Case 数量约5万条以上,产出问题还会有确认流程,过滤了自测等数据,一般周数据可以产出100+问题。

游戏接口测试的难点

对于普通的接口测试,网络协议通常是 常见的字符串、Json 等,直接使用常见的接口测试工具(如 就可以将用例数据发送往服务器,接着等待响应结果即可。

但对游戏接口测试来说,各个游戏项目的通信协议和数据格式都不一定相 同。通信协议可能是 TCP Protobuf、Json、二进制等,并且通常还会需要对数据进行加密解密,压缩解压缩等。

相对于传统接口测试,这就是游戏接口测试最复杂的一环,也是最先需要解决的一环。

游戏接口测试解决方案

游戏公司都是自定义的协议+序列化数据结构。

没有什么开箱子可用的开源可以直接和每一个游戏项目正常通信。做接口测试的第一步,需要根据定制特定的客户端网络层处理,来实现接口数据的发送与接收。

先需要做的就是实现一个中间服务,它可以根据游戏项目的不同,将数据转 换为特定的格式,再由特定的网络协议发送往对应的游戏服务器。

等服务器有回应时,再根据特定的格式将网络层接收的二进制数据解析成方 一般是可视化成 Json,方便后续断言处理,响应模板和Schema模板以及断言模式在下文介绍。

用例编辑中,除了设置请求参数,断言也非常重要,断言添加界面如下:

添加断言主要包含四个部分:断言名称、表达式、断言方式、断言值。

“表达式”是由接口里的“响应模板”解析出来的,操作时只需要从下拉框 中按层级选择对应的字段就行了,不需要手动编辑。

“断言方式”支持一些基础的判断方式,比如等于、不等于、大于、小于等, 针对数组,还支持判断数组长度或者判断是否包含某个数据。

另外,如果伏羲提供的断言方式不能满足实际需求,还支持“自定义断言”, 测试人员需要自己写判断脚本,支持 JavaScript 语言。

游戏协议发包和回包数量是不固定的,回包会有多个,可以根据包头里面的 命令号去判断具体去解析哪个包进行断言。如果需要验证数值正确,需要解析多 个包。比如抽卡协议,发一条,收 来判断协议是通的。获取卡牌信息的检查就需要获取其他的包,这个结果如果下 面一个接口需要用到,是需要存在为中间变量的。

测试主要流程

01 主要流程

  1. 了解并实现游戏网络层代码,确保可以和服务端正常通信
  2. 准备接口协议文档、参数配置文档、熟悉游戏玩法
  3. 设计完善测试用例
  4. 准备协议模块、添加用例参数、添加用例断言
  5. 发送接口,查看断言结果
  6. 从流程中可以看出,在真正开始测试前,需要准备三块内容:网络层处理、接 口文档和测试用例。

02 网络层处理

  1. 建立连接
  2. 收包发包
  3. 重连心跳
  4. 加密解密
  5. 压缩解压缩因为组内平台开发后台使用的是 终网络层处理选择了用 Netty 业务需求,可以快速实现各个游戏项目客户端的网络层处理,确保可以和服务端 正常通信。

网络层处理实现

01 建立连接 片段

02 编解码操作 片段

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z3C46AhL-1651128783479)(https://upload-images.jianshu.io/upload_images/11651132-f1f0c234cfd2e12d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

03 心跳处理 片段

04 重连处理 片段

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值