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

Posted qjqj0-0

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter:使用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:

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

技术图片

汇总报告:

技术图片

服务器显示:

技术图片

 

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

开心。

 

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

 

以上是关于Jmeter:使用TCP取样器与socket接口进行简单通信的主要内容,如果未能解决你的问题,请参考以下文章

jmeter tcp取样器使用方法

Jmeter之TCP取样器

Jmeter使用教程

用Jmeter进行TCP测试,取样器结果显示Response code: 500错误,该怎么解决此问题呢?

TCP_协议_socket接口-jmeter

Jmeter01:自定义java取样器