一个小任务:服务器与客户端连接,每次发送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(1):使用TCP取样器与socket接口进行简单通信-LMLPHP

Jmeter部分:

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

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

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

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

一个框架大概就做好了。

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

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

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

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

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

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

jmeter:

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

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

汇总报告:

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

服务器显示:

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

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

开心。

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

04-07 17:18