tcp/udp高并发和高吐吞性能测试工具

        在编写一个网络服务的时候都比较关心这个服务能达到多少并发连接,而在这连接的基础上又能达到一个怎样的交互能力.编写服务已经是一件很花力气的事情,而还要去编写一个能够体现结果的测试工具就更加消耗工作时间.下面介绍一个测试工具只需要简单地设置一下就能对tcp/udp服务进行高并发和高吐吞的性能测试,并通过图形化的方式反映测试结果.

        工具是采用用.NET编写,所以需要.NET FRAMEWORK才能运行.虽然.net在这方面的给人的感觉性能不怎么出色,但这个工作出色性能足够满足大部分服务端的压力测试.

工具主界面

​        

        工具非常简单易用,只需要设置几项内容就可以对于个服务端进行压测.在这里比较注意的就是测试模式这里,工具主要提供两种测试模式分别是

        应答模式:当连接接收服务端响应后马上进行下一次请求消息发送

        间隔模式:连接根据设置的间隔时间来进行发送请求消息

消息编辑

        在发起测试之前还需要给工作添加测试消息,明确工具向服务器发送那些消息内容

        

        可以根据自己的需要编辑多发送的消息,每个连接都会轮遁把这些消息发送给服务端,消息的编码也可以根据自己需要设置.工具提供4种分别是:ascii,utf8,hex和base64.

        当以上工作都准备好后就可以点击测试按钮进行测试,工具下方的几个曲线走势图会反映测试过程数据收集的结果.通过这些结果你就能了解到服务端响应的情况和整体吞吐浏览走势.

        工具到底具备怎样的压力效能呢,下面通过两个测试用例反映工具具备的测试能力.

测试用例1

        构建一个简单的TCP服务,然后在另一台机构建5000个连接的请求测试(测试电脑是一台笔记本),请求消息大小为1K;测试结果如下:

        

        从结果来看5000个连接请求测试结果反映出整体交互是每秒6W个发送和6W个接收,而产生带宽上下行分别是60MB,那基本已经把测试环境1Gb的带宽跑完了.从系统的资源管理器来看的确是这样子.

测试用例2 

        这个测试主要把发送的消息设置成4K,由于网络环境所以只能把测试工具和服务端放在同一台PC上.而测试的连接数降到的2000个

        

        测试结果反映socket的读写量分别是4W左右,而上下行的带宽分别170MB左右,算起来大概带宽达到3-4Gb之间.

HTTP测试

        组件也可以对HTTP进行测试,由于测试工具是基于长连接测试,所以请求描述必须用HTTP 1.1,并设置keep-alive;具体消息设置如下:

  

总结    

        从以上两个测试用例的结果反映,工具具备着非常不错的压力测试效率.相信对于大部分TCP/UDP服务压力测试工作都能胜任.由于工作采用的随机端口分配,所以在创建连接的数量上会有一定的限制,后面会调整一下根据本机IP情况过行手动绑定,这样相信可以满足一些需大量连接服务测试.

  下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/460203.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java socket 对方关闭_java Socket判断对方是否已关闭连接

如何判断远端socket是否已经断开连接,如果断开那么需要重新连接。1通过socket类的方法isClosed()、isConnected()、isInputStreamShutdown()、isOutputStreamShutdown()等,这些方法都是本地端的状态,无法判断远端是否已经断开连接。2通过Outp…

几个数字的和

ctrl z 的使用 #include<iostream> using namespace std;main() {int num,sum0;while(cin>>num) {sumnum;}cout<<"和为"<<sum<<endl; } View Code#include<iostream> using namespace std; main() { int num,s…

sharepoint 2013基于AD的Form表单登录(三)——选择用户时,屏蔽掉AD。

//来源&#xff1a;http://www.cnblogs.com/lrforever/p/3695820.html 隐藏AD人员选择&#xff0c;$ad.IsVisible设置为true&#xff0c;则显示出AD里用户$cpm Get-SPClaimProviderManager $ad get-spclaimprovider -identity "AD" $ad.IsVisible $false $cpm.Up…

java synchronized boolean_java中synchronized关键字

代码示例&#xff1a;package com.test;/** x,y值为什么不能保持相同&#xff1b;**/public class Pair implements Runnable{boolean b false;private int x;private int y;public Pair(int x,int y){this.x x;this.y y;}public Pair(){}public void incrementX(){x;}publi…

网站在线压力测试工具Load Impact

关于Load ImpactLoad Impact是一个一个在线的网站压力测试服务及工具&#xff0c;模拟多用户同时访问你的站点&#xff0c;并出具报告以分析你的站点可以支撑的访问者数量&#xff0c;它能让你通过简单的几次点击就能测试出你的网站的性能。不过免费用户只能同时并发50个虚拟访…

Loading 遮蔽层 简单实现。

<!--背景div--><div id"bg" class"bg" style"display:none;text-align: center;"></div> <!--loading 图片 div --><div class"mydiv" id"popDiv"><img src"${root }/common/images/…

java服务器向客户端发消息_java一个简单的客户端向服务端发送消息

java一个简单的客户端向服务端发送消息客户端代码&#xff1a;package com.chenghu.tcpip;import java.io.IOException;import java.io.OutputStream;import java.net.InetAddress;import java.net.Socket;//客户端public class TcpClientDemo01 {public static void main(Stri…

sc.next在java什么意思_sc.next() 和 nextLine 的原理

对java的Scanner类的next开头的相关类有点纠结&#xff0c;看了一些博客大致懂了&#xff0c;整理下代码事例直接参考了这位大佬的https://blog.csdn.net/long71751380/article/details/94008351. 总的原理以一段代码为例,scanner类import java.util.Scanner;public class Next…

WPF RichTextBox相关总结

由于公司涉及到聊天对话框的功能&#xff0c;就想到了RichTextBox&#xff0c;查阅相关资料&#xff0c;总结下&#xff1a; 一、RichTextBox的内容相关的类 1.1RichTextBox的内容结构 RichTexBox是个可编辑控件&#xff0c;可编辑我们很容易想到word的可编辑&#xff0c;在wor…

【Construct Binary Tree from Inorder and Postorder Traversal】cpp

题目&#xff1a; Given inorder and postorder traversal of a tree, construct the binary tree. Note:You may assume that duplicates do not exist in the tree. 代码&#xff1a; /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNo…

Remove Duplicates from Sorted Array II leetcode java

题目&#xff1a;Follow up for "Remove Duplicates": What if duplicates are allowed at most twice? For example, Given sorted array A [1,1,1,2,2,3], Your function should return length 5, and A is now [1,1,2,2,3]. 题解&#xff1a;之前是不允许有重…

java中非法运算符_Java 中的运算符和流程控制相关内容的理解

//三元表达式的嵌套int max i > j ? (i > k ? i : k) : (j > k ? j : k);//练习&#xff1a;输出分数所对应的等级 >90 -A >80 -B >70 -C >60 -D <60 -Echar level score > 90 ? A:(score > 80 ? B : (score > 70 ? C : (score >6…

BufferedWriterTest

public class BufferedWriterTest { public static void main(String[] args) { try { //创建一个FileWriter 对象 FileWriter fwnew FileWriter("c:\\myDoc\\hello.txt"); //创建一个BufferedWriter 对象 BufferedWriter bwnew BufferedWriter(fw); bw.write(&quo…

python 内置方法赋值_Python内置数据结构之字符串str

1. 数据结构回顾所有标准序列操作(索引、切片、乘法、成员资格检查、长度、最小值和最大值)都适用于字符串&#xff0c;但是字符串是不可变序列&#xff0c;因此所有的元素赋值和切片赋值都是非法的。>>> website http://www.python.org>>> website[-3:] c…

以下是关于ASP.NET中保存各种信息的对象的比较,理解这些对象的原理,对制作完善的程序来说是相当有必要的(摘至互联网,并非原创--xukunping)...

在ASP.NET中&#xff0c;有很多种保存信息的对象.例如:APPlication,Session,Cookie,ViewState和Cache等,那么它们有什么区别呢?每一种对象应用的环境是什么? 为了更清楚的了解,我们总结出每一种对象应用的具体环境,如下表所示: 方法信息量大小保存时间应用范围保存位置App…

php中在网页中显示图片代码,用PHP将网页上的Canvas图像保存到服务器上的方法

在几年前HTML5还没有流行的时候&#xff0c;我们的项目经理曾经向我提出这样一个需求&#xff1a;让项目评审专家们在评审结束时用笔在平板电脑上进行电子签名。这需要我们评审软件里提供这样一个功能&#xff1a;打开浏览器&#xff0c;登录&#xff0c;进入评审意见页&#x…

xcode 小插件

1.XCode颜色显示插件ColorSense项目地址&#xff1a; https://github.com/omz/ColorSense-for-Xcode2.规范注释生成器VVDocumenter项目地址&#xff1a;https://github.com/onevcat/VVDocumenter-Xcode3.图片名称自动补全 KSImageNamed-Xcode为项目中使用的UIImage的imageNamed…

实现每个点赞用户点击的带属性的字符串

2019独角兽企业重金招聘Python工程师标准>>> #pragma mark - 点击各个点赞用户-(void)setClicked:(TweetCell *)cell andOSCTweet:(OSCTweet *)tweet {NSMutableAttributedString *attributedString [[NSMutableAttributedString alloc] initWithString:tweet.like…

Django与SQL语言中——NULL与空字符串的区别

SQL有指定空值的独特方式&#xff0c;它把空值叫做NULL。 Null在数据库中表示 不知道的数据&#xff0c;主要有3种意思&#xff1a;1&#xff09;知道数据存在&#xff0c;但不知道具体值.2&#xff09;不知道数据是否存在.3&#xff09;数据不存在.在SQL中&#xff0c; NULL的…

php年月转换为年月日,php 将秒数转换为年、月、日、小时等时间格式

这篇文章主要为大家详细介绍了php 将秒数转换为年、月、日、小时等时间格式&#xff0c;具有一定的参考价值&#xff0c;可以用来参考一下。这个有用的函数能将秒数表示的事件转换为年、月、日、小时等时间格式&#xff0c;php将秒数转换为时间(年、月、日、小时…)&#xff0c…