zoukankan      html  css  js  c++  java
  • 利用jmeter+JAVA对RPC的单接口(dubbo接口等)进行性能测试

    建立JAVA项目

    建立maven项目,加入Jmeter所需要的JAR包依赖。

    POM.xml  加入如下:

    <dependency>
    <groupId>org.apache.jmeter</groupId>
    <artifactId>ApacheJMeter_core</artifactId>
    <version>3.2</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_components -->
    <dependency>
    <groupId>org.apache.jmeter</groupId>
    <artifactId>ApacheJMeter_components</artifactId>
    <version>3.2</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_java -->
    <dependency>
    <groupId>org.apache.jmeter</groupId>
    <artifactId>ApacheJMeter_java</artifactId>
    <version>3.2</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.jmeter/jorphan -->
    <dependency>
    <groupId>org.apache.jmeter</groupId>
    <artifactId>jorphan</artifactId>
    <version>3.2</version>
    </dependency>
    
    

    实现JavaSamplerClient 接口

    /**
     * jmeter测试类
     * 
     * @author hejb 2017.09.04
     *
     */
    public class AppForJmeter implements JavaSamplerClient {
    
    /**
     * 设置可用参数及的默认值
     */
    public Arguments getDefaultParameters() {
    System.out.println("i'm start");
    return null;
    }
    
    /**
     * 开始测试,从arg0参数可以获得参数值;
     */
    public SampleResult runTest(JavaSamplerContext arg0) {
    SampleResult sr = new SampleResult();
    sr.sampleStart();// jmeter 开始统计响应时间标记
    sr.setResponseData("test", null);
    sr.setDataType(SampleResult.TEXT);
    sr.setSuccessful(true);
    sr.sampleEnd();// jmeter 结束统计响应时间标记
    return sr;
    }
    
    /**
     * 每个线程测试前执行一次,做一些初始化工作
     */
    public void setupTest(JavaSamplerContext arg0) {
    System.out.println("set Up Test");
    }
    
    /**
     * 测试结束时调用;
     */
    public void teardownTest(JavaSamplerContext arg0) {
    System.out.println("down...");
    
    }
    
    public static void main(String[] args) {
    System.out.println("test in main");
    }
    }

    ps: 记得添加main方法

    导出JAR包

    把项目的JAR包导出

    加入JAR包

    apache-jmeter-3.2libext

    添加线程组

    加入JAVA请求配置

    可以找到刚刚的那个JAVA类

    添加察看结果树

    添加察看结果树,然后运行,可以看到JAVA中输出的内容

    加入聚合报告

    传入JAVA接受参数参数

    传入参数,并获取进行处理

    	String message = "test";
    
    	/**
    	 * 设置可用参数及的默认值
    	 */
    	public Arguments getDefaultParameters() {
    		Arguments arguments = new Arguments();
    		arguments.addArgument("message", "hello world!");
    		return arguments;
    	}

    在RUN中进行获取值

    
    	/**
    	 * 开始测试,从arg0参数可以获得参数值;
    	 */
    	public SampleResult runTest(JavaSamplerContext arg0) {
    		message = arg0.getParameter("message");
    		SampleResult sr = new SampleResult();
    		sr.sampleStart();// jmeter 开始统计响应时间标记
    		sr.setResponseData("test:" + message, null);
    		sr.setDataType(SampleResult.TEXT);
    		sr.setSuccessful(true);
    		try {
    			Thread.sleep(10);
    		} catch (InterruptedException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		sr.sampleEnd();// jmeter 结束统计响应时间标记
    		return sr;
    	}
    

    记得每次修改需要重新导出JAR包,放入到ext下,然后重新启动jemeter,能看到参数设置

    收到参数

    性能报告,

    这样就可以用JAVA去压测RPC接口了,(如dubbo接口的压测,长连接的压测等)

    记录下,免得下次还得重新搜怎么做

  • 相关阅读:
    【Socket】linux无连接编程技术
    【Socket】linux套接字技术之tcp
    【线程】linux之多线程同步互斥技术
    【线程】linux之thread错误解决方案
    【消息】linux之消息队列
    【Mysql】linux连接mysql错误解决方案
    【Mysql】Fedora下 Mysql 安装及配置
    hdu2457
    hnu10104
    hdu4117
  • 原文地址:https://www.cnblogs.com/springsource/p/7478361.html
Copyright © 2011-2022 走看看