一个小任务:服务器与客户端连接,每次发送50个随机生成的字符,两秒发送一次

失败过太多次,然后昨晚终于跑通了,心情激动,于是清均第一篇博客就诞生了。

之前不了解jmeter,想过单纯用java编写服务器和客户端,但代码多。然后老师介绍了jmeter。还用过tomcat做接收端,但试了两天都不行。

最后成功的方法:

用java写服务器,jmeter模拟客户端。

先介绍java写服务器这方面,仿照教材写了一个简单的服务器。

 import java.net.*;
import java.io.*; public class ServerSocketTest { private BufferedReader reader;
private ServerSocket server;
private Socket socket; //创建三个对象,服务器,套接字,还有用来读取的reader void getserver() {
try{
server = new ServerSocket(8055); //不能重复创建port一样的ServerSocket,否则会报错
System.out.println("服务器套接字已经创建成功");
while(true) { //true的意思是套接字是连接状态
System.out.println("等待客户机的连接");
socket = server.accept(); //等待客户机的连接,若连接,则创建一套接字
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
getClientMessage(); }
}catch (Exception e) {
e.printStackTrace();
}
} private void getClientMessage() {
//获取客户端信息
try{ System.out.println("客户机:"+reader.readLine()); //很重要的一个方法,获取客户端信息 }catch (Exception e) {
e.printStackTrace();
} //接收到信息就关闭
try{ if (reader !=null) {
reader.close();
}
if (socket !=null) {
socket.close();
} }catch (IOException e) {
e.printStackTrace();
}
} public static void main(String[] args) {
ServerSocketTest tcp = new ServerSocketTest();
tcp.getserver(); } }

启动这个类的main函数,就相当于启动了这个服务器。如下图所示。

Jmeter部分:

Jmeter的下载安装配置我就不详细介绍了,网上可以找到很多教程。

打开bin文件夹,打开名为ApacheJmeter的jar包。等待jmeter启动。

会看到一个测试计划,可以重命名。

右键测试计划,新建线程组——右键线程组--添加--sampler--tcp取样器——右键tcp取样器,添加监听器。

一个框架大概就做好了。

在线程组里设置线程数,总时间和循环次数,我分别设置的是4,8,1

在tcp取样器中添加服务器的ip地址和端口号,设置连接和响应时间。

点击左上角选项——函数助手对话框——选择功能__RandomString——长度填50,下一行输入生成字符串的范围。如1234567890qingjun,再下一行不用填。

——点击生成,可以拷贝函数到tcp取样器要发送的文本里,然后按回车空一行,不然发送不成功。

点击右上角的黄色警示图标可以看到jmeter运行情况。

点击绿色三角启动,或者左上角运行--启动。

jmeter:

结果树:绿色√表示成功了。

汇总报告:

服务器显示:

由简入繁,但最后明白了大道至简。总之第一步成功了。

开心。

接下来的学习总结还会发布在博客园,希望自己能坚持下去。

Jmeter(1):使用TCP取样器与socket接口进行简单通信的更多相关文章

  1. 使用TCP取样器测试Socket接口

    1 JMeter下载安装 下载地址:JMeter,选择Binaries下面的zip包. 检查java环境,是否安装了jdk或者jre. 解压zip包->找到bin目录下jmeter.bat文件- ...

  2. 基于node的tcp客户端和服务端的简单通信

    1.简单介绍下TCP/IP TCP/IP是互联网相关协议的集合,分为以下四层:应用层.传输层.网络层.数据链路层. 分成四层的好处是,假如只有一层,某个地方需要改变设计时,就必须把所有整体替换掉,而分 ...

  3. 请问使用jmeter在tcp取样器测试中服务器名称或ip,端口可以填变量值吗?

    请问使用jmeter在tcp取样器测试中服务器名称或ip,端口可以填变量值吗?

  4. Jmeter之TCP取样器

    1.在线程组中添加“TCP取样器” 2.填写数据 以下截图是必须配置的 TCPClient classname:  填写TCP报文格式(有三类),默认前缀:org.apache.jmeter.prot ...

  5. Jmeter之TCP取样器(模拟数据上报压测)

    TCP压测 场景:模拟硬件设备上报数据(登录,心跳,GPS定位数据/光感数据/电量数据),对这个功能进行压测 啰嗦一句:TCP压测很简单,只要调通了一个TCP,后续的逻辑判断就用逻辑控制器和正则处理就 ...

  6. .net学习笔记---tcp/udp/http/socket

    什么是TCP和UDP,以及二者区别是什么? TCP的全称为传输控制协议.这种协议可以提供面向连接的.可靠的.点到点的通信. UDP全称为用户数据报协议,它可以提供非连接的不可靠的点到多点的通信. 使用 ...

  7. ios开发网络知识 TCP,IP,HTTP,SOCKET区别和联系

    TCP,IP,HTTP,SOCKET区别和联系 网络由下往上分为:        对应 物理层-- 数据链路层-- 网络层--                       IP协议 传输层--     ...

  8. TCP/IP 和 Socket 的关系

    要写网络程序就必须用Socket,这是程序员都知道的.而且,面试的时候,我们也会问对方会不会Socket编程?一般来说,很多人都会说,Socket编程基本就是listen,accept以及send,w ...

  9. HTTP,FTP,TCP,UDP及SOCKET

    一.TCP/IP协议简析TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层:网络层:IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议传输层:TCP协议与UDP协议应用层:F ...

随机推荐

  1. File handling in Delphi Object Pascal(处理record类型)

    With new users purchasing Delphi every single day, it’s not uncommon for me to meet users that are n ...

  2. Delphi移动开发笔记(一)

    Delphi从XE4版本就开始支持移动开发了,但是笔者最近才开始学习这块内容.因为笔者原来一直使用的是Delphi7,对于很多新语法没有了解过,所以把其中一些东西记录下来.        程序开发,调 ...

  3. Delphi xe5调用外部扫描程序——谷歌 zxing

    unit uZXing; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Va ...

  4. visual studio添加docker支持简记

    很久以前学过一段时间的docker,那时装了电脑卡得受不了,学了一会就卸载了,最近电脑又装上了docker,感觉好像没有以前这么卡了,还是同一台电脑surface pro4, 试了一下visual s ...

  5. T4生成整理

    将一些公用的东西弄到一个类库DM.T4里面,哪个项目需要用到t4生成的话,将DM.T4的生成事件中将dll和ModelAuto.ttinclude复制到需要使用T4的项目的生成目录下,如果这样 cop ...

  6. 配置我的Ubuntu Server记(包括桌面及VNC,SSH,NTP,NFS服务) good

    跟老板申请买了一台配置相对较好的计算机回来做GPU计算,当然,不能独享,所以做成服务器让大家都来用. 这篇日志用来记录配置过程中遇到的一些问题,以方便下次不需要到处谷歌度娘. 安装Server版系统 ...

  7. Elasticsearch ML

    Elastic公司在收购了Prelert半年之后,终于在Elasticsearch 5中推出了Machine Learning功能.Prelert本身就擅长做时序性数据的异常检测,从这点上讲也比较契合 ...

  8. 使用pjax实现类似github无刷新更改页面url

    pjax=pushState+ajax,相信用过github的同学都知道,github部分页面采用了pjax这个项目来实现ajax无刷新加载的同时改变页面url.一起来学习一下这个插件吧. 我们都知道 ...

  9. 《SpringMVC从入门到放肆》十五、SpringMVC之上传文件

    上一篇我们学习了数据分组校验,已经可以灵活的在项目中进行数据校验了,今天来学习SpringMVC的上传文件功能.相对来说SpringMVC的上传功能,还是比较简单的. 一.添加依赖 <depen ...

  10. Scala 学习之路(二)—— 基本数据类型和运算符

    一.数据类型 1.1 类型支持 Scala 拥有下表所示的数据类型,其中Byte.Short.Int.Long和Char类型统称为整数类型,整数类型加上Float和Double统称为数值类型.Scal ...