iohao / ioGame

无锁异步化、事件驱动架构设计的 java netty 网络编程框架; 轻量级,无需依赖任何第三方中间件或数据库就能支持集群、分布式; 适用于网络游戏服务器、物联网、内部系统及各种需要长连接的场景; 通过 ioGame 你可以很容易的搭建出一个集群无中心节点、集群自动化、分布式的网络服务器;FXGL、Unity、UE、Cocos Creator、Godot、Netty、Protobuf、webSocket、tcp、socket;java Netty 游戏服务器框架;
http://game.iohao.com
GNU Affero General Public License v3.0
904 stars 201 forks source link

轻量小部件 - 压测&模拟客户端请求 #160

Closed iohao closed 1 year ago

iohao commented 1 year ago

介绍

此模块是用于模拟客户端,简化模拟工作量,只需要编写对应请求与回调。

使用该模块后,当我们与前端同学联调某个功能时,不需要跟前端哥们说:在点一下、在点一下、在点一下了。这种“在点一下”的交流联调方式将成为过去式。

除了可以模拟简单的请求外,通常还可以做一些复杂的请求编排,并支持复杂业务的压测。模拟测试的过程是可互动的,但也支持测试自动化。

与单元测试不同的是,该模块可以模拟真实的网络环境,并且在模拟测试的过程中与服务器交互是可持续的、可互动的

可互动模式是用于调试测试某些功能。在互动的过程中,开发者可以在控制台中指定执行某个模拟请求命令,并且支持在控制台中输入一些动态的请求参数,从而让我们轻松的测试不同的业务逻辑走向。

关于可互动部分,需要将后续文档阅读完后才能知道其具体意思。

特点

iohao commented 1 year ago

使用文档 https://www.yuque.com/iohao/game/tc83ud

iohao commented 1 year ago

简介演示

文档有点多,但在实际的使用上是比较简单的。

图一

图左边是我们提供的 action,图右边则是我们编写的模拟请求。

0cd9b0d4aa682c3dddc2a372e76ac0f7

图二

控制台中是可交互的部分,可以查看提供了哪些模拟的客户端请求。

通过在控制台中输入 【cmd-subCmd】 来触发对应的请求。

51148d07dde132224a04780b51e2209c

图三

触发请求后,当服务器有响应数据时,会进入到对应模拟请求的回调中。

6674c6a4ab6f7a72bb8d5594ad4e0e00

小结

比如需要做一个简单的:私聊系统、聊天频道、好友系统时,这个模拟客户端就派上用场了。

模拟客户端模块还提供了一个 ClientUser(玩家)对象,一个模拟客户端对应一个 ClientUser。ClientUser 是客户端的用户(玩家)对象,开发者可以通过动态属性 options 来扩展业务,比如可以在动态属性中保存货币、战力值、血条 ...等。也可以通过继承的方式来扩展。

iohao commented 1 year ago

https://github.com/game-town/ioGame/releases/tag/17.1.46