game_server.test_robot
简介
服务器端基于engine层实现的测试机器人管理模块 主要是对接pkg.test_client的压测机器人的流程,提供一个标准的对接实现
更新
测试机器人的control_id来源现在有两类,一类是常规机器人(游戏服务器控制创建/销毁),这类的control_id是从(1<<31
)开始
另一类是压测平台机器人(http协议,压测平台控制创建/销毁),这类的control_id是从0开始
组件接口
test_robot.gs
样例
public void test()
{
// 模拟游戏服务器
cfg.init_by_map({
"server_id" : 1
});
engine.boot();
LogD.disable_mongodb();
// 注册网络事件
net.on_server_start("game", (string name) {
test_robot.setup(net.get_server("game"), (: smart_prepare :), (: smart_destroy :));
});
// 启动网络服务
net.start_server("game", 18765, false);
test_equal(GmD.query_entry("robot_op") != nil, true);
}
// 一些初始化操作
public parallel void smart_prepare(object user, string test_name)
{
// 设置本玩家对象为机器人
user.set("is_robot", true);
}
// 删除玩家对象
public parallel void smart_destroy(object user_ob)
{
// 标记为析构中,不再处理指令
user_ob.set_temp("is_destroying", true);
// 先断开网络
user_ob.disconnect();
// 其它处理
//
// 干掉自己
user_ob.drop("test_robot");
UserD.remove_user(user_ob);
}