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,
"disable_mongo" : true
});
engine.boot();
LogD.disable_mongodb();
net.start_server("game", 18765, false);
map setup_para = {
"game_server" : net.get_server("game"),
"init_robot_user_func" : (: smart_prepare :),
"destroy_robot_user_func" : (: smart_destroy :)
};
bool setup_result = test_robot.setup(setup_para);
test_equal(setup_result, true);
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);
}