当前位置: 首页 > news >正文

服务器模块测试

目录

测试逻辑

测试工具

测试


测试逻辑

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

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

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进行测试。 因为目前我们只是简单的对服务器的逻辑进行测试,具体的性能测试其实我们是不好做的。

http://www.lryc.cn/news/465650.html

相关文章:

  • ATTCK 框架讲解
  • ADC在STM32F1系列的使用详解
  • 网络空间安全之一个WH的超前沿全栈技术深入学习之路(一:渗透测试行业术语扫盲)作者——LJS
  • 中间件-概念
  • vscode离线状态ssh连接不断输入密码登不上:配置commit_id
  • Vim使用与进阶
  • python中frida的安装+frida-server(雷电模拟器)保姆级安装教程
  • Java线程安全集合之COW
  • 智能汽车制造:海康NVR管理平台/工具EasyNVR多品牌NVR管理工具/设备实现无插件视频监控直播方案
  • [渗透]前端源码Chrome浏览器修改并运行
  • SAP揭秘者-怎么查看SAP 版本及S4 HANA的版本
  • UE4 材质学习笔记13(格斯特纳波)
  • 简述 C# 二维数据集合 List 的创建、遍历、修改、输出
  • ps2024 一键安装教程 永久使用!
  • ScrollView 真机微信小程序无法隐藏滚动条
  • 【日志】编辑器开发——修复根据Excel表格数据生成Json文件和配置表代码报错
  • C#线性查找算法
  • GPT+Python)近红外光谱数据分析与定性/定量建模技巧
  • Spark动态资源释放机制 详解
  • 基于径向基神经网络(RBF)的构网型VSG自适应惯量控制MATLAB仿真模型
  • 简单汇编教程9 字符串与字符串指令
  • Taro构建的H5页面路由切换返回上一页存在白屏页面过渡
  • 【学习笔记】网络设备(华为交换机)基础知识 9 —— 堆叠配置
  • jeston编译配置cuda加速版opencv
  • ApacheShiro反序列化 550 721漏洞
  • Github + 自定义域名搭建个人静态站点
  • 使用OpenCV进行视频边缘检测:案例Python版江南style
  • DataWhale10月动手实践——Bot应用开发task04学习笔记
  • 关于 IntelliJ IDEA 2024 安装使用
  • React是如何工作的?