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请求”选项卡中可以选择你想测试的类名,在“线程组”选项中可以输入想循环的次数及并发数






  • 相关阅读:
    LightOJ 1313
    LightOJ 1285
    [坑] treap
    HDU 4511 小明系列故事——女友的考验 (AC自动机+DP)
    ZOJ 3765 Lights (伸展树splay)
    HDU 4818 RP problem (高斯消元, 2013年长春区域赛F题)
    SGU 104. Little shop of flowers (DP)
    HDU 3472 HS BDC (混合图的欧拉路径判断)
    POJ 1386 Play on Words (有向图欧拉路径判定)
    微信小程序上架需要增值电信业务经营许可证ICP?
  • 原文地址:https://www.cnblogs.com/wyf99/p/7248747.html
Copyright © 2011-2022 走看看