服务器模块测试

目录

测试逻辑

测试工具

测试


测试逻辑

我们可以使用一个简单的业务处理逻辑来进行测试。

最简单的,我们业务逻辑就直接返回一个固定的字符串

复制代码
void Message(const PtrConnection&con,Buffer* inbuffer)    //模拟用户新数据回调
{
    inbuffer->MoveReadOffset(inbuffer->ReadSize());     //直接读完
    std::string resp = "OKOK";
    con->Send(resp.c_str(),resp.size()); 
}

void Close(const PtrConnection&con)  
{
    NORMAL_LOG("连接关闭: %p",con.get());
}
void Connect(const PtrConnection&con)  
{
    NORMAL_LOG("连接建立: %p",con.get());
}

//任意事件回调
void Event(const PtrConnection&con) 
{
    // NORMAL_LOG("事件到来:%d",con->Fd());
}

那么主函数的逻辑:

复制代码
int main()
{
    TcpServer svr(8080);
    svr.EnableInactiveRelease(30);
    svr.SetThreadCount(3);
    svr.SetConnectCallBack(Connect);
    svr.SetMessageCallBack(Message);
    svr.SetEventCallBack(Event);
    svr.SetCloseCallBack(Close);
    svr.Start();

    return 0;
}

测试工具

现阶段我们使用webbench来进行测试,

我们在Web Bench Homepage下载webbench的源码。然后传送到云服务器。

然后下载一个组件:

解下来解压缩

这个文件的后缀虽然是 .gz ,但是我们使用 tar zxvf 进行解压缩时会发现它提示并不是 .gz 格式,这时候我们可以把文件名的 .gz 后缀去掉,然后只用 tar xvf 进行解压缩

然后进入该目录,使用make命令进行编译

这时候我们会发现他会有一个报错

我们可以进入这个webbench.c文件找到报错的地方

很明显这个参数没用到,我们可以把这个参数删除

这时候再使用make编译就没问题了。

测试

接下来就是测试了。

webbench 的使用方式也很简单,我们可以看一下他的使用手册

-c 用于设置客户端数量,-t设置测试的时间,然后我们还需要给出服务器的网址,也就是给一个url,我们可以在url中携带一个参数,虽然也没什么用。

后续我们就可以开始进行测试了:

我们设置的服务器的端口号是8080,所以我们可以用下面的命令行来测试

复制代码
./webbench -c 5000 -t 30 http://127.0.0.1:8080/hello

其实我们这样子测试是不严谨的,因为我们使用的是云服务器,同时,我们测试的客户端和服务器都在一台主机上,所以他收到网络带宽的影响很小。 但是由于我们的云服务器的配置一般很低,带宽很小,资源也很少,所以我们目前也只能这样进行简单的测试,后续我们可以使用postman进行测试。 因为目前我们只是简单的对服务器的逻辑进行测试,具体的性能测试其实我们是不好做的。

相关推荐
Novproxy_Z29 分钟前
商用代理避坑:如何识别商家拿机房 IP 冒充住宅 IP
java·网络·tcp/ip
无足鸟ICT34 分钟前
【RHCA+】vmstat命令(监控系统资源)
linux·服务器
垆边人似月.41 分钟前
RDMA 文件传输踩坑(五):READY 发送成功后,为什么出现 Work Request Flushed Error?
服务器·网络·tcp/ip
闪亮的路灯1 小时前
Linux 安装mqtt服务mosquitto
linux·运维·服务器
HideF1 小时前
nmcli
linux·服务器·网络
qetfw2 小时前
UOS DHCP Relay:跨网段分配与 IP、DNS、网关验证
linux·服务器·网络·tcp/ip·uos
尹人入圣2 小时前
目前热门的IP驱动产业新场景新工具
网络·python·网络协议·tcp/ip
明航咨询-陈老师2 小时前
ITSS运行维护服务能力成熟度认证技术纵深:标准模型、等级路径、2026审核趋势与CS/CMMI对比
服务器·数据库·cmmi
中屹指纹浏览器svip3 小时前
只用指纹浏览器,不搭配IP可以吗?
网络
jimmyleeee3 小时前
Agent安全之八:OWASP ASI08 级联失效------当每一个 Agent 都“正确”,系统却走向灾难
网络·安全·web安全