Jmeter(1):使用TCP取样器与socket接口进行简单通信
一个小任务:服务器与客户端连接,每次发送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接口进行简单通信的更多相关文章
- 使用TCP取样器测试Socket接口
1 JMeter下载安装 下载地址:JMeter,选择Binaries下面的zip包. 检查java环境,是否安装了jdk或者jre. 解压zip包->找到bin目录下jmeter.bat文件- ...
- 基于node的tcp客户端和服务端的简单通信
1.简单介绍下TCP/IP TCP/IP是互联网相关协议的集合,分为以下四层:应用层.传输层.网络层.数据链路层. 分成四层的好处是,假如只有一层,某个地方需要改变设计时,就必须把所有整体替换掉,而分 ...
- 请问使用jmeter在tcp取样器测试中服务器名称或ip,端口可以填变量值吗?
请问使用jmeter在tcp取样器测试中服务器名称或ip,端口可以填变量值吗?
- Jmeter之TCP取样器
1.在线程组中添加“TCP取样器” 2.填写数据 以下截图是必须配置的 TCPClient classname: 填写TCP报文格式(有三类),默认前缀:org.apache.jmeter.prot ...
- Jmeter之TCP取样器(模拟数据上报压测)
TCP压测 场景:模拟硬件设备上报数据(登录,心跳,GPS定位数据/光感数据/电量数据),对这个功能进行压测 啰嗦一句:TCP压测很简单,只要调通了一个TCP,后续的逻辑判断就用逻辑控制器和正则处理就 ...
- .net学习笔记---tcp/udp/http/socket
什么是TCP和UDP,以及二者区别是什么? TCP的全称为传输控制协议.这种协议可以提供面向连接的.可靠的.点到点的通信. UDP全称为用户数据报协议,它可以提供非连接的不可靠的点到多点的通信. 使用 ...
- ios开发网络知识 TCP,IP,HTTP,SOCKET区别和联系
TCP,IP,HTTP,SOCKET区别和联系 网络由下往上分为: 对应 物理层-- 数据链路层-- 网络层-- IP协议 传输层-- ...
- TCP/IP 和 Socket 的关系
要写网络程序就必须用Socket,这是程序员都知道的.而且,面试的时候,我们也会问对方会不会Socket编程?一般来说,很多人都会说,Socket编程基本就是listen,accept以及send,w ...
- HTTP,FTP,TCP,UDP及SOCKET
一.TCP/IP协议简析TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层:网络层:IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议传输层:TCP协议与UDP协议应用层:F ...
随机推荐
- HDFS的几点改进
HDFS(Hadoop Distributed File System)是一个运行在商用机器上面的分布式文件系统,其设计思想来自于google著名的Google File System论文. HDFS ...
- postgresql + JDBC 学习
Based on debian 9, postgresql 9.6 and Java 8, at Dec-24-2018 ======================================= ...
- 在Delphi中编辑res文件
先用记事本编写一个rc的文件.如内容为:_Comms RCData Comms.jpg Comms.jpg为图片名称,然后在这个rc文件和图片拷贝到delphi安装路径的bin文件夹里面,选中这两个文 ...
- 给变量赋值,程序会跳到 HardFault_Handler的问题
原因:变量属于指针,该指针没有初始化
- hadoop之hbase基本操作
hbase shell 进入hbase命令行 list 显示HBASE表 status 系统上运行的服务器的细节和系统的状态 version 返回HBase系统使用的版本 table_help 引导如 ...
- webpack 编译ES6
虽然js的es6是大势之趋,但很多浏览器还没有完全支持ES6语法,webpack可以进行对es6打包编译 需要安装的包有 npm init // 初始化 npm install babel-loade ...
- Linux实战型企业运维工程师试题
1.如何通过Linux配置一个局域网或者IDC机房上网网关,请给出步骤及命令?答:上网网关配置(1)开启内核转发:sed -i 's#net.ipv4.ip_forward = 0#net.ipv4. ...
- 转:Mongoose使用操作
一般我们不直接用MongoDB的函数来操作MongoDB数据库 Mongose就是一套操作MongoDB数据库的接口. 连接数据库 // mongoose 链接var mongoose = req ...
- l论文查重平台
推荐大家一个靠谱的论文检测平台.重复的部分有详细出处以及具体修改意见,能直接在文章上做修改,全部改完一键下载就搞定了.怕麻烦的话,还能用它自带的降重功能.哦对了,他们现在正在做毕业季活动, 赠送很多免 ...
- Django中信号signals简单使用
在平时的开发过程中,我们会遇到一些特殊的应用场景,如果你想要在执行某种操作之前或者之后你能够得到通知,并对其进行一些你想要的操作时,你就可以用Django中的信号(signals).Django 提供 ...