Jmeter(1):使用TCP取样器与socket接口进行简单通信

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

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

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

最后成功的方法:

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

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

 1 import java.net.*;
 2 import java.io.*;
 3
 4 public class ServerSocketTest {
 5
 6         private BufferedReader reader;
 7         private ServerSocket server;
 8         private Socket socket;                    //创建三个对象,服务器,套接字,还有用来读取的reader
 9
10         void getserver() {
11             try{
12                 server = new ServerSocket(8055);  //不能重复创建port一样的ServerSocket,否则会报错
13                 System.out.println("服务器套接字已经创建成功");
14                 while(true) {                                 //true的意思是套接字是连接状态
15                     System.out.println("等待客户机的连接");
16                     socket = server.accept();   //等待客户机的连接,若连接,则创建一套接字
17                     reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
18                     getClientMessage();
19
20                 }
21             }catch (Exception e) {
22                 e.printStackTrace();
23             }
24         }
25
26         private void getClientMessage() {
27             //获取客户端信息
28             try{
29
30                  System.out.println("客户机:"+reader.readLine());  //很重要的一个方法,获取客户端信息
31
32             }catch (Exception e) {
33                 e.printStackTrace();
34             }
35
36             //接收到信息就关闭
37             try{
38
39                 if (reader !=null) {
40                     reader.close();
41                 }
42                 if (socket !=null) {
43                     socket.close();
44                 }
45
46             }catch (IOException e) {
47                 e.printStackTrace();
48             }
49         }
50
51         public static void main(String[] args) {
52                 ServerSocketTest tcp = new ServerSocketTest();
53                 tcp.getserver();
54
55     }
56
57 }

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

Jmeter部分:

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

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

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

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

一个框架大概就做好了。

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

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

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

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

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

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

jmeter:

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

汇总报告:

服务器显示:

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

开心。

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

原文地址:https://www.cnblogs.com/qjqj0-0/p/10664398.html

时间: 2024-08-29 08:07:17

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

【Java基础学习笔记】Java中Socket+Swing设计简单通信

在<Java从入门到精通(第3版)>的原书中,客户端仅能发送一次数据,我在此基础上修改了一点点,实现了多次发送数据的单向通讯. 1. 服务器端 package Tcp_IP; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; import java.sq

jmeter tcp取样器使用方法

jmeter视频课程地址:http://edu.51cto.com/course/2324.html tcp取样器介绍 官方TCP文档:https://wiki.apache.org/jmeter/UserManual/Reference/TcpSampler.这个是我们学习的最好资料.但可惜大家都不喜欢看~ 简单来说,tcp取样器的使用和HTTP请求流程基本一样,都是建立sampler之后填写必要的信息即可.如下图 参数填写介绍 如上图基本我们就是要注意红框里的几处即可,下面分别做一个介绍.

Socket接口是TCP/IP网络的API-C语言版

Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序.要学Internet上的TCP/IP网络编程,必须理解Socket接口.  Socket接口设计者最先是将接口放在Unix操作系统里面的.如果了解Unix系统的输入和输出的话,就很容易了解Socket了.网络的 Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符.Socket也具有一个类似于打开文件的函数调用Socket(),该函数返 回一个整

Jmeter之TCP取样器

1.在线程组中添加“TCP取样器” 2.填写数据 TCPClient classname:  填写TCP报文格式(有三类),默认前缀:org.apache.jmeter.protocol.tcp.sampler. TCPClientImpl:普通文本传输,可设置他的编码格式(eg:son串) BinaryTCPClientImpl:十六进制报文(常用) LengthPrefixedBinaryTCPClientImpl:继承BinaryTCPClientImpl类,并在BinaryTCPClie

TCP/IP,HTTP,Socket初识

在大学时候学过网络通信这一块,奈何已经还给老师,苍天饶过谁,该拾起来看看学学的还是要学,先简单了解了下这方面的知识,后续会继续通过看书来充实这方面的知识. 手机能够联网是手机底层实现了TCP/IP协议,可以使手机通过无线网建立TCP连接,TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在无差别的网络之上. 建立起一个TCP连接需要经过"三次握手" 第一次:客户端发送syn包到服务器,等待服务端确认. 第二次:服务端收到syn包,确认客户的syn,同时发送一个自己的syn,即s

linux网络socket 接口转

linux网络socket 接口 1.socket函数:一个进程必须做的第一件事就是调用socket函数获得一个文件描述符. ----------------------------------------------------------------- #include<sys/socket.h> int socket(int family,int type,int protocol); 返回:非负描述字---成功 -1---失败 -----------------------------

HTTP,FTP,TCP,UDP及SOCKET

一.TCP/IP协议简析TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层:网络层:IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议传输层:TCP协议与UDP协议应用层:FTP.HTTP.TELNET.SMTP.DNS等协议 HTTP是应用层协议,其传输都是被包装成TCP协议传输.可以用SOCKET实现HTTP.SOCKET是实现传输层协议的一种编程API,可以是TCP,也可以是UDP. 二.Socket连接与HTTP连接区别[Socket]由于通常情况下Socket

TCP/IP的Socket编程

转:http://blog.csdn.net/xywlpo/article/details/6639748 1. TCP/IP.UDP的基本概念 TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,他是一个工业标准的协议集,它是为广域网设计的.其中包含了很多其他的协议,不过以TCP和IP协议为代表.UDP(User Data Protocl),即用户数据报协议,是与TCP相对应的协议,它属于TCP/IP协议族中的

Linux内核、 TCP/IP、Socket参数调优

/proc/sys/net目录 所有的TCP/IP参数都位于/proc/sys/net目录下(请注意,对/proc/sys/net目录下内容的修改都是临时的,任何修改在系统重启后都会丢失),例如下面这些重要的参数: 参数(路径+文件) 描述 默认值 优化值 /proc/sys/net/core/rmem_default 默认的TCP数据接收窗口大小(字节). 229376 256960 /proc/sys/net/core/rmem_max 最大的TCP数据接收窗口(字节). 131071 51