`

转载 Jmeter socket的压力测试

阅读更多

socket的压力测试

 

(1)socket测试需要写一个测试jar包。

首先创建一个java工程,导入lib\ext\ApacheJMeter_core.jar,ApacheJMeter_java.jar

然后创建下面的代码:(IP和端口可以根据自己的需要修改

 
  1. import org.apache.jmeter.config.Arguments;  
  2. import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;  
  3. import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;  
  4. import org.apache.jmeter.samplers.SampleResult;  
  5.     
  6. import java.io.BufferedReader;  
  7. import java.io.InputStreamReader;  
  8. import java.io.PrintWriter;  
  9. import java.net.*;  
  10.     
  11. /** 
  12.  * 
  13.  * @author howsky 
  14.  * 
  15.  */  
  16. public class Test extends AbstractJavaSamplerClient {  
  17.  // Sock begin----------------------------------------------  
  18.  private Socket sid;  
  19.  private PrintWriter out;  
  20.  private BufferedReader in;  
  21.  private String ip;  
  22.     private String port;  
  23.  // Sock end------------------------------------------------  
  24.      
  25.     private static String label = "howsky.net";  
  26.        
  27.  // 测试结果  
  28.  private SampleResult sr;  
  29.      
  30.  /** 
  31.   * 初始化 
  32.   */  
  33.  public void setupTest(JavaSamplerContext arg0) {    
  34.         System.out.println("setupTest");    
  35.     }  
  36.      
  37.  /** 
  38.   * 设置请求的参数 
  39.   */  
  40.  public Arguments getDefaultParameters() {  
  41.         Arguments params = new Arguments();  
  42.         params.addArgument("ip""127.0.0.1");  
  43.         params.addArgument("port""8888");  
  44.         return params;  
  45.     }  
  46.      
  47.  /** 
  48.   * 运行过程 
  49.   */  
  50.  public SampleResult runTest(JavaSamplerContext arg0) {  
  51.      ip = arg0.getParameter("ip");    
  52.         port = arg0.getParameter("port");     
  53.         sr = new SampleResult();    
  54.         sr.setSampleLabel(label);    
  55.         try{    
  56.             sr.sampleStart(); //记录程序执行时间,以及执行结果    
  57.             //发送数据    
  58.             String msg = "welcome to howsky.net";    
  59.             System.out.println("begin");    
  60.             sendMsg(ip, Integer.parseInt(port), msg);    
  61.             sr.setSuccessful(true);    
  62.             System.out.println("end");    
  63.         }catch(Throwable e){    
  64.             sr.setSuccessful(false);    
  65.         }finally{    
  66.             sr.sampleEnd();    
  67.         }    
  68.         return sr;   
  69.  }  
  70.      
  71.  /** 
  72.   * 结束 
  73.   */  
  74.  public void teardownTest(JavaSamplerContext arg0) {  
  75.     }  
  76.      
  77.  /** 
  78.   * 发送消息 
  79.   * @param ip 
  80.   * @param port 
  81.   * @param msg 
  82.   * @throws Exception 
  83.   */  
  84.  private void sendMsg(String ip, int port, String msg) throws Exception{    
  85.   sid = new Socket(ip, port);  
  86.   in = new BufferedReader(new InputStreamReader(sid.getInputStream()));  
  87.   out = new PrintWriter(sid.getOutputStream(), true);  
  88.   out.println(msg);  
  89.   in.readLine();  
  90.         System.out.println("success");    
  91.     }  
  92. }  

 

接着点击项目右键Export->jar file->命名.jar

最后将jar包放到lib\ext\下,启动JMeter

(2)本地写socket服务器端代码如下:

 
  1. public class SocketSer  
  2. {  
  3. public static void main(String[] args)   
  4.     {  
  5.             ServerSocket ss=null;  
  6.             OutputStream os=null;  
  7.             try {  
  8.                     ss = new ServerSocket(8888);  
  9.                     while(true){  
  10.                         Socket s=ss.accept();  
  11.                         String ip=s.getInetAddress().getHostName();  
  12.                         os=s.getOutputStream();  
  13.                         os.write("ServerSocket回复请求".getBytes());  
  14.                         os.flush();  
  15.                         s.close();  
  16.                         System.out.println(ip+"---"+new String("^_^成功完成一次请求"));  
  17.                     }  
  18.                 } catch (IOException e) {  
  19.                     e.printStackTrace();  
  20.                 }finally{  
  21.                     try {  
  22.                         os.close();  
  23.                     } catch (IOException e) {  
  24.                         e.printStackTrace();  
  25.                     }  
  26.                 }  
  27.     }  

然后在本地启动调用该段代码(开启服务端)。

(3)JMeter中创建线程组。设置线程数,Ramp-up Period,循环次数。

(4)JMeter中创建Java请求默认值,如图:

 

然后选择要测试的类:如图

 

(5)JMeter创建java请求:

 

配置基本和java请求默认值一样。

如图:

 

(6)创建监听:查看结果树

 

结果如下:

 

命令行输出:

 

备注写给自己:  2015年做的kafka生产者消费者行情改造项目test_hq 与此类似

原文:http://blog.csdn.net/a574258039/article/details/19549407

分享到:
评论

相关推荐

    jmeter socket 客户端测试代码

    jmeter socket Client端,用于压测非调试,启动服务端后,将此文件放入eclipse中导出成Jar包

    JMeter数据库压力测试工具学习资料.rar

    JMeter数据库压力测试工具学习资料JMeter数据库压力测试工具学习资料JMeter数据库压力测试工具学习资料JMeter数据库压力测试工具学习资料JMeter数据库压力测试工具学习资料JMeter数据库压力测试工具学习资料JMeter...

    jmeter-压力测试报告-超细

    在IT行业中,压力测试是确保系统稳定性和性能的关键环节,而Apache JMeter是广泛应用的一款开源压力测试工具。本文将深入探讨JMeter的使用方法、重要功能以及如何进行超细粒度的压力测试报告分析。 首先,JMeter是...

    jmeter socket测试jar

    jemeter并发scoket接口依赖jar,可根据不同场景,自行添加修改代码。不进行修改也可直接使用!~

    HP-Socket压力测试 易源代码

    三、HP-Socket压力测试策略 1. 并发连接测试:模拟大量客户端同时连接到服务器,观察服务器的响应速度和连接处理能力。 2. 数据传输速率测试:测试在一定时间内服务器处理和传输数据的速度,评估带宽利用率。 3. ...

    jmeter mqtt服务器压力测试

    《JMeter MQTT服务器压力测试详解》 在信息技术领域,性能测试是确保系统稳定性和可靠性的重要环节,特别是对于物联网(IoT)应用中的消息传递协议,如MQTT(Message Queuing Telemetry Transport)。JMeter,一个...

    jmeter-压力测试报告-超细.docx

    【JMeter压力测试报告】 本报告是一份基于Apache JMeter工具进行的压力测试文档,由一位高级测试工程师精心制作,旨在提供一个详细的模板供其他测试人员参考。报告详细记录了整个测试过程,包括测试内容、方法、...

    Jmeter_Socket通信插件,用于用Jmeter测试Socket

    如果想用Jmeter测试Socket的,可以下载该插件包,然后放到Jmeter的lib/ext目录下,就可以在sampler上新增socket sample了。

    使用jmeter做ws压力测试

    这篇博客文章“使用jmeter做ws压力测试”将深入探讨如何利用JMeter进行Web服务的压力测试。 首先,了解JMeter的基本结构至关重要。JMeter由线程组、采样器、监听器、断言、定时器、配置元件等组件构成。线程组模拟...

    Jmeter WEB HTTP压力测试实例

    Jmeter 在 Windows XP/2003/W7/W8 等操作系统中都可以运行,前提是需要安装好 JDK 包,因为 JMeter 是基于 JAVA 开发的压力测试软件。在本次配置实例中,我们使用的是 W8-64 位系统。 安装步骤 安装步骤非常简单,...

    jmeter5压力测试工具

    《JMeter5:高效的压力测试工具详解》 在软件开发和运维过程中,性能测试是不可或缺的一环,它能确保系统在高负载下仍能稳定运行。JMeter5作为一款强大的开源压力测试工具,因其易用性和灵活性而备受青睐。本文将...

    jmeterSocket客户端端调试

    jmeter socket Client端,用于调试非压测,启动服务端后,将此文件放入eclipse中导出成Jar包

    Jmeter-5.6.2压力测试工具

    Apache JMeter是一款强大的开源压力测试工具,主要由Apache组织开发并维护,其最新版本为5.6.2。这款工具完全基于Java语言,因此具备跨平台特性,可以在多种操作系统上运行,如Windows、Linux和Mac OS等。JMeter主要...

    jmeter测试socket工程多服务器

    本话题将围绕“jmeter测试socket工程多服务器”这一主题,深入探讨如何使用JMeter进行Socket通信的性能测试,特别是在多服务器环境下的实施策略。 Socket编程是一种网络编程技术,用于实现客户端与服务器之间的双向...

    jmeter项目压力测试工具

    《JMeter:强大的压力测试工具》 在信息技术领域,性能测试是评估系统稳定性和可扩展性的重要环节,其中压力测试尤为关键。今天我们要探讨的是一个名为JMeter的开源项目压力测试工具,它以其强大功能和易用性在业界...

    jmeter3.2压力测试

    Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI ...

    jmeter压力测试工具

    apache jmeter是来自国外的一款开源免费、功能强大的web压力测试工具。它是一款为负载测试功能行为和测量性能的100%纯Java应用程序,可用于测试静态和动态资源,Web动态应用程序的性能。jmeter可用于模拟服务器,...

    jmeter压力测试websocket所需jar包.rar

    在标题"jmeter压力测试websocket所需jar包.rar"中,提到的关键点是JMeter和WebSocket压力测试所需的jar包。这意味着我们需要引入特定的库来扩展JMeter,使其能够支持WebSocket协议的测试。这个压缩包可能包含了这些...

Global site tag (gtag.js) - Google Analytics