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

相关文章:

服务器模块测试

目录 测试逻辑 测试工具 测试 测试逻辑 我们可以使用一个简单的业务处理逻辑来进行测试。 最简单的,我们业务逻辑就直接返回一个固定的字符串 void Message(const PtrConnection&con,Buffer* inbuffer) //模拟用户新数据回调 {inbuffer->MoveReadOf…...

ATTCK 框架讲解

摘要 ATT&CK框架作为MITRE公司开发的网络攻击行为知识库,自2015年发布以来,已成为信息安全领域的重要工具。该框架通过提炼和归纳真实世界中的网络威胁事件,以攻击者的视角构建了一套系统化的战术和技术分类体系。本文详细阐述了ATT&…...

ADC在STM32F1系列的使用详解

目录 1. ADC简介 2. 逐次逼近型ADC(ADC0809) 3. ADC框图(STM32) 4. ADC基本结构 5. 输入通道 6. 转换模式 6.1 单次转换 6.1.1 非扫描模式 6.1.2 扫描模式 6.2 连续转换 6.2.1 非扫描模式 6.2.2 扫描模式…...

网络空间安全之一个WH的超前沿全栈技术深入学习之路(一:渗透测试行业术语扫盲)作者——LJS

欢迎各位彦祖与热巴畅游本人专栏与博客 你的三连是我最大的动力 以下图片仅代表专栏特色 [点击箭头指向的专栏名即可闪现] 专栏跑道一 ➡️网络空间安全——全栈前沿技术持续深入学习 专栏跑道二➡️ 24 Network Security -LJS ​ ​ ​ 专栏跑道三 ➡️ MYSQL REDIS Advanc…...

中间件-概念

什么是中间件? 中间件(Middleware)是位于 Web 服务器和应用程序之间的组件,它可以处理每个请求和响应。中间件的主要作用是在请求到达应用程序之前或响应返回客户端之前对其进行处理。中间件可以执行各种任务,如日志记…...

vscode离线状态ssh连接不断输入密码登不上:配置commit_id

如题,vscode在一个离线服务器上,通过remote-ssh登录远程服务器,不断弹出密码框,总是进不去,后来了解到主要是不同vscode版本需要下载对应抑制commit-id的vscode-server-linux-x64.tar.gz包。 1)vscode, 点…...

Vim使用与进阶

1. Vim 技巧 撤销 U 反撤销 Ctrl U 历史命令 history 2.要在Vim中进行多行缩进&#xff0c;可以按以下步骤操作&#xff1a; 进入Vim编辑器并进入命令模式。使用 v 键或 Shift v 键选择多行需要缩进的文本。按下 > 键进行向右缩进&#xff0c;或按下 < 键进行向左…...

python中frida的安装+frida-server(雷电模拟器)保姆级安装教程

一.安装雷电模拟器 雷电模拟器官网 直接下载安装即可 &#xff08;1&#xff09;打开必要权限 雷电模拟器的设置已完毕 二.安装adb工具 本文以autox.js来实现adb操作 &#xff08;1&#xff09;vscode中下载auto.js插件 &#xff08;2&#xff09;雷电模拟器下载autox.j…...

Java线程安全集合之COW

概述 java.util.concurrent.CopyOnWriteArrayList写时复制顺序表&#xff0c;一种采用写时复制技术&#xff08;COW&#xff09;实现的线程安全的顺序表&#xff0c;可代替java.util.ArrayList用于并发环境中。写时复制&#xff0c;在写入时&#xff0c;会复制顺序表的新副本&…...

智能汽车制造:海康NVR管理平台/工具EasyNVR多品牌NVR管理工具/设备实现无插件视频监控直播方案

一、背景介绍 近年来&#xff0c;随着网络在我国的普及和深化发展&#xff0c;企业的信息化建设不断深入&#xff0c;各行各业都加快了信息网络平台的建设&#xff0c;大多数单位已经或者正在铺设企业内部的计算机局域网。与此同时&#xff0c;网络也成为先进的新兴应用提供了…...

[渗透]前端源码Chrome浏览器修改并运行

文章目录 简述本项目所使用的代码[Fir](https://so.csdn.net/so/search?qFir&spm1001.2101.3001.7020) Cloud 完整项目 原始页面修改源码本地运行前端源码修改页面布局修改请求接口 本项目请求方式 简述 好久之前&#xff0c;就已经看到&#xff0c;_无论什么样的加密&am…...

SAP揭秘者-怎么查看SAP 版本及S4 HANA的版本

文章摘要&#xff1a; 在给客户实施SAP项目或部署SAP服务器及SAP跟外部系统集成时&#xff0c;经常客户或第三方软件公司会问SAP版本或SAP HANA的版本。那么到底怎么来看这个SAP的版本呢&#xff1f;这个问题其实很多SAP模块顾问都不知道怎么看&#xff0c;你可以想象一下&…...

UE4 材质学习笔记13(格斯特纳波)

一.格斯特纳波 要让水面动起来&#xff0c;必须要保证平面有足够的三角面。我们可以在材质里的细节面板打开曲面细分&#xff0c;可以分裂三角面且使之数量更多&#xff0c;选择“扁平曲面细分&#xff0c;其作用是切割我的三角面&#xff0c;然后给我做一大堆三角面出来。 这…...

简述 C# 二维数据集合 List 的创建、遍历、修改、输出

简述 C# 二维数据集合 List 的创建、遍历、修改、输出 1、为什么要使用列表 List2、引入命名空间3、声明一维列表 List4、声明创建一个二维列表 List&#xff0c;数据类型 int5、 简单访问元素6、遍历二维列表&#xff0c;控制台输出7、遍历二维列表&#xff0c;修改数据&#…...

ps2024 一键安装教程 永久使用!

下载后&#xff0c;直接解压打开exe文件就能安装了 下载: https://pan.baidu.com/s/1uDSug00prwRw5igF0N-Xhw?pwd8888 【软件名称】:ps2024 【软件大小】:4.7g 【软件版本】:25.12.0.806 【软件简介】:Photoshop&#xff0c;简称“PS”&#xff0c;是由美国Adobe公司推出…...

ScrollView 真机微信小程序无法隐藏滚动条

问题描述 根据官方文档&#xff0c;使用:show-scrollbar"false"&#xff0c;隐藏滚动条无效 解决方法 添加一段样式在 scroll-view 上或者父级节点上下 ::-webkit-scrollbar {width: 0;height: 0;color: transparent;display: none;} eg. .inforDetails_app {p…...

【日志】编辑器开发——修复根据Excel表格数据生成Json文件和配置表代码报错

2024.10.15 又是蕉绿且摆烂的一天&#xff0c;不仅需要克制网瘾&#xff0c;还要努力学习&#xff0c;不然真的会被抛弃啊。但是我还是不想卷&#xff0c;给我的时间大概还有半年&#xff0c;突然好奇半年时间到底能学点什么或者做点什么。 【力扣刷题】 暂无 【数据结构】 …...

C#线性查找算法

前言 线性查找算法是一种简单的查找算法&#xff0c;用于在一个数组或列表中查找一个特定的元素。它从数组的第一个元素开始&#xff0c;逐个检查每个元素&#xff0c;直到找到所需的元素或搜索完整个数组。线性查找的时间复杂度为O(n)&#xff0c;其中n是数组中的元素数量。 …...

GPT+Python)近红外光谱数据分析与定性/定量建模技巧

2022年11月30日&#xff0c;可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT3.5&#xff0c;将人工智能的发展推向了一个新的高度。2023年4月&#xff0c;更强版本的ChatGPT4.0上线&#xff0c;文本、语音、图像等多模态交互方式使其在…...

Spark动态资源释放机制 详解

Apache Spark 是一个分布式数据处理框架&#xff0c;其动态资源分配&#xff08;或称为动态资源释放&#xff09;机制&#xff0c;是为了更高效地利用集群资源&#xff0c;尤其是在执行具有不同工作负载的作业时。Spark 的动态资源释放机制允许它根据作业的需求自动分配和释放集…...

基于MATLAB的齿轮系统非线性动力学特性分析:参数阻尼比变化调节下的输出结果

基于matlab的齿轮系统非线性动力学特性分析 基于matlab的齿轮系统非线性动力学特性分析&#xff0c;综合考虑齿侧间隙、时变啮合刚度、综合啮合误差等因素下&#xff0c;参数阻尼比变化调节下&#xff0c;输出位移、相图、载荷、频率幅值结果 程序已调通&#xff0c;可直接运行…...

Apollo6.0 Lattice算法实战解析——从轨迹组合到最优路径生成

1. Lattice算法在Apollo6.0中的核心作用 Lattice算法是Apollo自动驾驶系统中的关键路径规划模块&#xff0c;它负责将横向和纵向轨迹进行智能组合&#xff0c;最终生成安全、舒适且符合交通规则的最优行驶路径。这个算法就像一位经验丰富的导航员&#xff0c;不仅要考虑车辆当前…...

Omni-Vision Sanctuary 在 Proteus 仿真中的应用:智能电路设计与调试助手

Omni-Vision Sanctuary 在 Proteus 仿真中的应用&#xff1a;智能电路设计与调试助手 1. 电子工程师的新助手 作为一名电子工程师&#xff0c;你是否经历过这样的场景&#xff1a;面对一个功能需求&#xff0c;花了大量时间查阅资料却找不到合适的电路方案&#xff1b;仿真波…...

BallonsTranslator:深度学习驱动的漫画翻译自动化工具

BallonsTranslator&#xff1a;深度学习驱动的漫画翻译自动化工具 【免费下载链接】BallonsTranslator 深度学习辅助漫画翻译工具, 支持一键机翻和简单的图像/文本编辑 | Yet another computer-aided comic/manga translation tool powered by deeplearning 项目地址: https:…...

新手友好:通过快马平台轻松上手vc16188视频处理开发

作为一个刚接触视频处理的新手&#xff0c;我最近在InsCode(快马)平台上尝试了一个vc16188视频基础处理项目&#xff0c;整个过程比我预想的顺利很多。这个平台最让我惊喜的是&#xff0c;它能根据我的需求描述直接生成完整可运行的项目代码&#xff0c;而且代码结构清晰、注释…...

OpenClaw网页前端开发与优化全流程指南

OpenClaw网页前端开发与优化全流程指南 &#x1f310; 核心价值&#xff1a;OpenClaw实现"需求→设计→代码→优化→部署"全流程自动化&#xff0c;开发效率提升600%&#xff0c;页面加载速度提升300%&#xff0c;SEO评分提升85%&#xff0c;完全兼容React/Vue/Angul…...

除了Omnipeek,你的8812BU网卡还能怎么玩?Win10下的另类WiFi抓包与网络诊断实战

解锁Realtek 8812BU网卡的隐藏潜能&#xff1a;Windows 10下的WiFi抓包与网络诊断全攻略 当你手握一块Realtek 8812BU无线网卡时&#xff0c;可能只把它当作普通的网络连接工具。但实际上&#xff0c;这款硬件在Windows 10环境下可以变身为强大的网络诊断利器。本文将带你探索…...

快速原型:用快马一键生成win11右键菜单传统样式恢复工具

快速原型&#xff1a;用快马一键生成win11右键菜单传统样式恢复工具 最近升级到Windows 11后&#xff0c;最让我不习惯的就是那个右键菜单了。新版的设计把所有选项都折叠起来&#xff0c;每次想找个功能还得点"显示更多选项"&#xff0c;效率大打折扣。作为一个习惯…...

Qwen3.5-2B边缘部署案例:车载终端实时识别路标+语音播报导航提示

Qwen3.5-2B边缘部署案例&#xff1a;车载终端实时识别路标语音播报导航提示 1. 项目背景与需求 在智能驾驶和车载辅助系统领域&#xff0c;实时路标识别与语音导航是提升驾驶安全性的关键技术。传统方案通常需要&#xff1a; 独立的视觉识别模块处理路标额外的语音合成引擎生…...

LeaguePrank终极指南:免费打造个性化英雄联盟界面体验

LeaguePrank终极指南&#xff1a;免费打造个性化英雄联盟界面体验 【免费下载链接】LeaguePrank 项目地址: https://gitcode.com/gh_mirrors/le/LeaguePrank 还在为英雄联盟千篇一律的客户端界面感到乏味吗&#xff1f;LeaguePrank这款免费开源工具让你轻松自定义游戏中…...