一个小任务:服务器与客户端连接,每次发送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:
结果树:绿色√表示成功了。
汇总报告:
服务器显示:
由简入繁,但最后明白了大道至简。总之第一步成功了。
开心。