zoukankan      html  css  js  c++  java
  • 十八.jmete java工程测试

     1.在eclipse里面新建一个工程

    2.从jmeter的安装目录lib/ext中引入两个文件“ApacheJmeter_core.jar”和“ApacheJmeter_java.jar“到java工程


    导入架包
     


    添加需要添加的架包


    因为jmeter有自己编译的方法和类,如果不导入,编译的时候会报错



    3.编写jmeter辅助函数
     



    执行的先后顺序为:
    getDefaultParameters()-----> setup Test(javaSamplerContext context)----->runTest(javaSamplerContext context)----->teardownTest(javaSamplerContext)
    先赋予参数----->初始化----->运行----->结束

    实例代码:
    package com.jmeter_test;
    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;

    /**
    * Jmeter自定义脚本测试类.
    * 该脚本功能为发送输入框中的字符串。
    * @param <log>
    * @param <log>
    * @param <Logger>
    */
    public class jmeter_test<log, log, Logger> extends AbstractJavaSamplerClient {
    /**
    * 输出到Jmeter控制台的日志类.
    * 需要引用Jmeter lib目录下的logkit-2.0.jar.
    */
    private Logger log = getLogger();
    private SampleResult results;   // 运行结果.
    private String testStr;      // Jmeter控制台输入的参数.

    /**
    * 设置传入的参数,可以设置多个,已设置的参数会显示到Jmeter的参数列表中.
    */
    public Arguments getDefaultParameters() {
    log.info("execute getDefaultParameters...");
    Arguments params = new Arguments();
    /*
    * 定义一个参数,显示到Jmeter的参数列表中,
    * 第一个参数为参数默认的显示名称,
    * 第二个参数为默认值
    */
    params.addArgument("testStr", "");
    return params;
    }

    /**
    * 初始化方法,实际运行时每个线程仅执行一次,在测试方法运行前执行,
    * 类似于LoadRunner中的init方法.
    */
    public void setupTest(JavaSamplerContext arg0) {
    log.info("start execute setupTest...");
    results = new SampleResult();
    testStr = arg0.getParameter("testStr", "");
    if (testStr != null && testStr.length() > 0) {
    results.setSamplerData(testStr);
    }
    }

    /**
    * 测试执行的循环体,根据线程数和循环次数的不同可执行多次,类似于LoadRunner中的Action方法
    */
    public SampleResult runTest(JavaSamplerContext arg0) {
    log.info("execute runTest...");
    //定义一个事务,表示这是事务的起始点,类似于LoadRunner的lr.start_transaction
    //    results.sampleStart();
    //定义一个事务,表示这是事务的结束点,类似于LoadRunner的lr.end_transaction
    //    results.sampleEnd();
    if(testStr.length() < 5){
    log.info("fail...");
    //用于设置运行结果的成功或失败,如果是"false"则表示结果失败,否则则表示成功
    results.setSuccessful(false);
    } else {
    log.info("TestString is  "+testStr);
    results.setSuccessful(true);
    }
    return results;
    }
    /**
    * 结束方法,实际运行时每个线程仅执行一次,在测试方法运行结束后执行,<br>
    * 类似于LoadRunner中的end方法.
    */
    public void teardownTest(JavaSamplerContext arg0) {
    }
    /**main函数用于本地调试,打包时要注释掉*/
    //*
    public static void main(String[] args)
    {
    Arguments params = new Arguments();
    params.addArgument("testStr", "51zxw");//设置参数,并赋予默认值1
    JavaSamplerContext arg0 = new JavaSamplerContext(params);
    jmeter_test test = new jmeter_test();
    test.setupTest(arg0);
    test.runTest(arg0);
    test.teardownTest(arg0);
    }/**/
    }


    常用的方法:
    1)addArgument(*name*,*value*)定义参数
    2)sampleStart()定义事物的开始,类似于LR的Lr start transaction,和LR一样事物间不要放无关代码
    3)sampleEnd()定义事物的结束,类似于LR的lr_end_transation
    4)setSuccessful(true,false)设置运行结果的成果或失败,jmeter统计成果失败,在聚合报告中能够体现

    4.将工程导出成jar,放置于$jmeter安装目录$/lib/ext/下,其他依赖的jar放置于$安装目录/lib/下

    选择需要导出的工程--->file--->Export---->java---->java file--->next---->在java file的路径中,选择放置于$jmeter安装目录$/lib/ext/下,java文件叫StrTrest.java----->勾选需要导出的项目------>finish


    5.运行脚本
    1)选中主界面左侧的“测试计划”,右键菜单-->添加--->Threads(Users)--->线程组
    2)再选中刚才新增的“线程组”,右键菜单--添加---sampler---java请求
    3)再选中刚才新增的“java请求“,右键菜单---添加---监视器---聚合报告
    4)在“java请求”选项卡中可以选择你想测试的类名,在“线程组”选项中可以输入想循环的次数及并发数






  • 相关阅读:
    spark 读取mongodb失败,报executor time out 和GC overhead limit exceeded 异常
    在zepplin 使用spark sql 查询mongodb的数据
    Unable to query from Mongodb from Zeppelin using spark
    spark 与zepplin 版本兼容
    kafka 新旧消费者的区别
    kafka 新生产者发送消息流程
    spark ui acl 不生效的问题分析
    python中if __name__ == '__main__': 的解析
    深入C++的new
    NSSplitView
  • 原文地址:https://www.cnblogs.com/wyf99/p/7248747.html
Copyright © 2011-2022 走看看