• jmeter3.0 java请求


    1、java请求说明

    需要压测某些java方法或一些请求需要通过编写代码实现

    1.1、依赖jar包:

    jmeter下/lib/ext中的ApacheJMeter_java.jar(必须)、ApacheJMeter_core.jar(必须)

    如需在本地调试。还需引入jar包:avalon-framework-4.1.4.jar、jorphan.jar、logkit-2.0.jar

    测试类必须继承org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient类

    1.2、主要有四个方法:

    getDefaultParameters:设置输入参数

    setupTest:执行测试前的初始化

    runTest:执行测试方法体,被测代码需要在该方法中实现

    teardownTest:执行测试后动作

    2、代码样例,简单的求和测试

    import org.apache.jmeter.config.Arguments;
    
    import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
    import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
    import org.apache.jmeter.samplers.SampleResult;
    
    public class Sum extends AbstractJavaSamplerClient {
    
        private String a;
        private String b;
        /** Holds the result data (shown as Response Data in the Tree display). */
        private String resultData;
    
        // 这个方法是用来自定义java方法入参的。
        // params.addArgument("num1","");表示入参名字叫num1,默认值为空。
        //设置可用参数及的默认值;
        public Arguments getDefaultParameters() {
            Arguments params = new Arguments();
            params.addArgument("num1", "");
            params.addArgument("num2", "");
            return params;
        }
    
        //每个线程测试前执行一次,做一些初始化工作;
        public void setupTest(JavaSamplerContext arg0) {
        }
    
        //开始测试,从arg0参数可以获得参数值;
        public SampleResult runTest(JavaSamplerContext arg0) {
            a = arg0.getParameter("num1");
            b = arg0.getParameter("num2");
            //System.out.println("a:"+a+"	"+"b:"+b);
            SampleResult sr = new SampleResult();
            sr.setSampleLabel( "求和");      //设置采样器名称
            try {
                sr.sampleStart();// jmeter 开始统计响应时间标记
                // 通过下面的操作就可以将被测方法的响应输出到Jmeter的察看结果树中的响应数据里面了。
                resultData = String.valueOf(Integer.parseInt(a)+Integer
                        .parseInt(b));
                //System.out.println(resultData);
                if (resultData != null && resultData.length() > 0) {
                    sr.setResponseData("结果是:"+resultData, null);
                    sr.setDataType(SampleResult.TEXT);
                }
                // System.out.println(resultData);
                sr.setSuccessful(true);
            } catch (Throwable e) {
                sr.setSuccessful(false);
                e.printStackTrace();
            } finally {
                sr.sampleEnd();// jmeter 结束统计响应时间标记
            }
            return sr;
        }
    
        //测试结束时调用;
        public void teardownTest(JavaSamplerContext arg0) {
            //System.out.println(end);
            //System.out.println("The cost is"+(end-start)/1000);
        }
        
        // main只是为了调试用,最后打jar包的时候注释掉。
        
        public static void main(String[] args) { // TODO Auto-generated method stub
            Arguments params = new Arguments();
            params.addArgument("num1", "1");// 设置参数,并赋予默认值1
            params.addArgument("num2", "2");// 设置参数,并赋予默认值2
            JavaSamplerContext arg0 = new JavaSamplerContext(params);
            System.out.println(arg0.getIntParameter("num1"));
            Sum test = new Sum();
            test.setupTest(arg0);
            test.runTest(arg0);
            test.teardownTest(arg0);
        }  
    }

    3、将工程导出为jar文件

    4、使用jmeter测试

    将导出的jar包放在jmeter目录下的/lib/ext下,在类名称中选择Sum

  • 相关阅读:
    Python使用selenium(二)
    自动化测试
    测试要求
    测试用例编写
    求职杂谈
    不会交谈的测试员,果然不是一个好的测试员
    浅谈微信小程序测试
    python 匿名函数lambda的用法
    python __xx__的定义和用处
    看django的感受
  • 原文地址:https://www.cnblogs.com/zxgaa/p/9412456.html
Copyright © 2020-2023  润新知