zoukankan      html  css  js  c++  java
  • Jmeter常用脚本开发之Java请求

    Java请求:就是用来对java项目的类进行压测

    例子:将输入的两个参数通过IO存入文件

    1、创建Java工程,工程目录如下

     

    2、将Jmeter-lib下面的所有jar包导入java工程,

    3、创建一个测试类并实现JavaSamplerClient接口或继承AbstractJavaSamplerClient,并重写:

    • public Arguments getDefaultParameters():设置可用参数及的默认值;
    • public void setupTest(JavaSamplerContext arg0):每个线程测试前执行一次,做一些初始化工作;
    • public SampleResult runTest(JavaSamplerContext arg0):开始测试,从arg0参数可以获得参数值;
    • public void teardownTest(JavaSamplerContext arg0):测试结束时调用;

    具体代码:

    输入参数类:

     1 package com.test;
     2 
     3 import java.io.File;
     4 import java.io.PrintWriter;
     5 
     6 /**
     7  * Created by Administrator on 2017/4/20.
     8  */
     9 public class OutputService {
    10         public static void output(String filename,int a,int b,int c) throws Exception{
    11             PrintWriter out=new PrintWriter(new File(filename));
    12             out.write(a+":"+b+":"+c);
    13             out.close();
    14         }
    15 }

    测试类

     1 package com.test;
     2 
     3 import org.apache.jmeter.config.Arguments;
     4 import org.apache.jmeter.protocol.java.sampler.JavaSamplerClient;
     5 import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
     6 import org.apache.jmeter.samplers.SampleResult;
     7 
     8 /**
     9  * Created by Administrator on 2017/4/20.
    10  */
    11 public class PerformenceTest implements JavaSamplerClient {
    12     private SampleResult results;
    13     private String a;
    14     private String b;
    15     private String c;
    16     private String filename;
    17 
    18     public static void main(String[] args) {
    19         // TODO Auto-generated method stub
    20         Arguments params = new Arguments();
    21         params.addArgument("filename","0");
    22         params.addArgument("a", "0");//设置参数,并赋予默认值0
    23         params.addArgument("b", "0");//设置参数,并赋予默认值0
    24         params.addArgument("c", "0");
    25         JavaSamplerContext arg0 = new JavaSamplerContext(params);
    26         PerformenceTest test = new PerformenceTest();
    27         test.setupTest(arg0);
    28         test.runTest(arg0);
    29         test.teardownTest(arg0);
    30     }
    31     // 设置传入的参数,可以设置多个,已设置的参数会显示到Jmeter的参数列表中
    32     public Arguments getDefaultParameters() {
    33         Arguments params = new Arguments();
    34         params.addArgument("filename", "0");//设置参数,并赋予默认值0
    35         params.addArgument("a", "0");//设置参数,并赋予默认值0
    36         params.addArgument("b", "0");//设置参数,并赋予默认值0
    37         params.addArgument("c","0");
    38         return params;
    39     }
    40 
    41 
    42     // 初始化方法,实际运行时每个线程仅执行一次,在测试方法运行前执行
    43     public void setupTest(JavaSamplerContext arg0) {
    44         results = new SampleResult();
    45     }
    46 
    47 
    48     // 测试执行的循环体,根据线程数和循环次数的不同可执行多次
    49     @Override
    50     public SampleResult runTest(JavaSamplerContext arg0) {
    51         a = arg0.getParameter("a"); // 获取在Jmeter中设置的参数值
    52         b = arg0.getParameter("b"); // 获取在Jmeter中设置的参数值
    53         c = arg0.getParameter("c");
    54         filename = arg0.getParameter("filename"); // 获取在Jmeter中设置的参数值
    55         results.sampleStart();// jmeter 开始统计响应时间标记
    56         try {
    57             OutputService test = new OutputService();
    58             test.output(filename,Integer.parseInt(a), Integer.parseInt(b),Integer.parseInt(c));
    59             results.setSuccessful(true);
    60 // 被测对象调用
    61         } catch (Throwable e) {
    62             results.setSuccessful(false);
    63             e.printStackTrace();
    64         } finally {
    65             results.sampleEnd();// jmeter 结束统计响应时间标记
    66         }
    67         return results;
    68     }
    69 
    70 
    71     // 结束方法,实际运行时每个线程仅执行一次,在测试方法运行结束后执行
    72     public void teardownTest(JavaSamplerContext arg0) {
    73     }
    74 
    75 }

    4、把该工程以jar包形式导出,选择File—Project Structure,如图所示,配置完成,点击应用:

     

    然后,选择Build,打开刚才配置的jar包路径,就看到导出的jar包

     

    5、然后把导出的jar包复制到Jmeter的libext目录下,重启Jmeter

    6、打开测试计划,添加线程组--Java请求,选择测试类,会自动加载出类中的参数,如图

     

    给参数赋值

     

    执行压测,并发数设为1000,运行结果如图所示

    聚合报告

     

    表格察看结果

     

    图形结果

    生成的文件

     

  • 相关阅读:
    搜索型SQL注入解决方法
    windows10系统下phpstudy安装php8版本
    齐博cms基础教程之认识齐博cms
    thinkphp查找父级栏目及子级栏目的所有文章
    phpstudy+iis搭建php项目
    python办公自动化基础搜索文件
    thinkphp屏蔽ip访问项目做法
    thinkphp使用paypal进行支付的做法详细步骤
    数据库无法插入数据解决方法
    tp5发送邮件适用于常用的php版本做法
  • 原文地址:https://www.cnblogs.com/chenchen-tester/p/6739356.html
Copyright © 2011-2022 走看看