`
dylan0514sina.cn
  • 浏览: 94944 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

jmeter压力测试

    博客分类:
  • test
 
阅读更多
Jmeter是个强大性能检测工具,主页java压力测试工具有丰富的介绍
公司开发了一系列规则引擎相关的项目,现用spring的RMI封装完成测试

  • 右键“测试计划”,建立测试组


  • 查看线程组属性(设置并发数,执行数,级线程启动特征



  •   线程数:并发数量
      RAMP-up:决定了线程之前的启动间隔时间 RAMP-up/线程数
      循环次数:指定了每个线程执行测试方法的次数
  • 右键 “线程组”,建立JAVA请求


  • 了解Jmeter对JAVA请求的支持



  • jmeter会扫描lib目录下所有的Jar,找出实现org.apache.jmeter.protocol.java.sampler.JavaSamplerClient的所有类形成
    下拉列表供你选择,请看上图的“类名称”一栏
    其次,还有“同请求一起发送的参数”,下列的参数列表是由JavaSamplerClient.getDefaultParameters()决定的,所以如果需要,可实现它
  • 右键 “线程组”添加监听器,Jmeter提供了方方面面的实现,我们看看 “聚合报告”


  • 了解“聚合报告”重要属性



  • Average 平均响应时间
    min 最快响应时间
    max 最慢响应时间
    Throughout 吞吐量
    90%Line 90%响应时间快于此值(重要参考性)
  • 编写代码,抛钻引玉
  • package com.skyon.rule.service;
    import java.util.HashMap;
    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;
    import org.springframework.aop.framework.ProxyFactory;
    import org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor;
    import org.springframework.remoting.httpinvoker.SimpleHttpInvokerRequestExecutor;
    
    
    public class RuleServiceTest extends AbstractJavaSamplerClient {
       
     public RuleService ruleService;
     
     public static final String RULE_URI = "rule_uri";
     
     public static final String DEFAULT_RULE = "//project/89a26ce8";
     
     public static final String SERVICE_URL = "service_url";//http://localhost:8080/ruleservice/RuleService";
     
     public static final String DEFAULT_SERVICE = "http://localhost:8080/ruleservice/RuleService";
     
     public static final Class serviceInterface = RuleService.class;
     
     
     
     @Override
     public void setupTest(JavaSamplerContext context) {
      try{
       HttpInvokerClientInterceptor interceptor = new HttpInvokerClientInterceptor();
       SimpleHttpInvokerRequestExecutor executor = new SimpleHttpInvokerRequestExecutor();
       interceptor.setHttpInvokerRequestExecutor(executor);
       String serviceURL = context.getParameter(SERVICE_URL);
       if(serviceURL == null || "".equals(serviceURL.trim())){
        interceptor.setServiceUrl(serviceURL);
       }else{
        interceptor.setServiceUrl(context.getParameter(SERVICE_URL));
       }
       interceptor.setServiceInterface(serviceInterface);
       ruleService  = (RuleService) ProxyFactory.getProxy(serviceInterface, interceptor);
      }catch(Exception e){
       getLogger().warn("thread " + Thread.currentThread().getId() + "initialize fail", e);
      }
     }
    
     
     @Override
     public Arguments getDefaultParameters() {
      // TODO Auto-generated method stub
      Arguments params = new Arguments();//836e0302
      params.addArgument(RULE_URI,"//project/89a26ce8");
      params.addArgument(SERVICE_URL,"");
      return params;
     }
    
     
     public SampleResult runTest(JavaSamplerContext context) {
      SampleResult results = new SampleResult();
      try {
        results.setDataEncoding("UTF-8");
        results.sampleStart();     //定义一个事务,表示这是事务的起始点,类似于LoadRunner的 lr.start_transaction
        String ruleURI = context.getParameter(RULE_URI);
        if(ruleURI == null || "".equals(ruleURI.trim())){
            ruleURI = DEFAULT_RULE;
        }
        ruleService.invoke(ruleURI, new HashMap(), false);
              results.setSuccessful(true);
      } catch (RuleServiceException e) {
        results.setSuccessful(false);
        getLogger().error(e.getMessage(), e);
      }finally{
              results.sampleEnd();     //定义一个事务,表示这是事务的结束点,类似于LoadRunner的 lr.end_transaction
      }
      
      return results;
     }
    }
    
  • 代码会依赖jmeter相关包ApacheJMeter_core,ApacheJMeter_java,jorphan,logkit,avalon-framework-4.1.4.jar
  • 这些都在jmeter主目录/lib下,代码中也用到了spring Http invoker,当然少不了spring相关包
  • 将该文件及依赖文件打包JAR,copy至jmeter主目录/lib/ext/。同时spring相关包也拷入。重启jmeter。如果代码被正确加载,会显示图4中的下列表中
    • 大小: 45.8 KB
    • 大小: 39.5 KB
    • 大小: 51.6 KB
    • 大小: 37.5 KB
    • 大小: 60.2 KB
    • 大小: 43.8 KB
    分享到:
    评论

    相关推荐

      jmeter压力测试课程入门到实战视频.rar

      ├ 第1章 章节一JMeter压力测试课程介绍 │ │ 1、亿级流量压测系列之Jmeter4.0课程介绍和效果演示.mp4 │ └ 2、常用压力测试工具对比.mp4 ├ 第2章 章节二 JMeter4.x基础知识讲解和压测实战 │ │ 3、Jmeter基本...

      jmeter压力测试websocket所需jar包.rar

      在标题"jmeter压力测试websocket所需jar包.rar"中,提到的关键点是JMeter和WebSocket压力测试所需的jar包。这意味着我们需要引入特定的库来扩展JMeter,使其能够支持WebSocket协议的测试。这个压缩包可能包含了这些...

      jmeter-压力测试报告-超细.docx

      【JMeter压力测试报告】 本报告是一份基于Apache JMeter工具进行的压力测试文档,由一位高级测试工程师精心制作,旨在提供一个详细的模板供其他测试人员参考。报告详细记录了整个测试过程,包括测试内容、方法、...

      Jmeter压力测试工具安装及使用教程

      首先,需要从 Apache 官方网站下载 Jmeter压力测试工具。下载完成后,解压缩压缩包,并确保环境变量配置正确。需要注意三个重要点:1)解压缩后的压缩包名称必须是 apache-jmeter-4.0.zip,否则可能会出现错误;2)...

      JMeter 压力测试详解PPT

      **JMeter 压力测试详解** 在软件测试领域,压力测试是一种重要的测试类型,它的主要目的是评估系统在高负载条件下的性能和稳定性。压力测试通常关注的是软件在短时间内处理大量并发用户请求的能力,以确保系统能够...

      Jmeter 压力测试工具

      三、JMeter压力测试步骤 1. **安装与配置**:下载并解压`apache-jmeter-2.13`压缩包,运行bin目录下的jmeter.bat(Windows)或jmeter.sh(Unix/Linux)启动JMeter。 2. **创建测试计划**:在工作台中,右键点击...

      mssql使用jmeter压力测试文件及程序

      1. "mssql使用jmeter压力测试.jmx":这是一个JMeter的测试计划文件,包含了对MSSQL的压力测试配置,包括数据库连接参数、SQL语句等。通过打开这个文件,我们可以直接运行测试,查看测试结果。 2. "apache-jmeter-...

      软件测试系列-Jmeter压力测试分布式执行.md

      ### 软件测试系列—JMeter压力测试分布式执行详解 #### 一、JMeter分布式测试概述 在软件性能测试领域,JMeter是一款非常流行的开源负载测试工具,它主要用于对Web应用进行压力测试。随着互联网应用的发展,单一的...

      jmeter压力测试websocket所需jar包.zip

      "jmeter压力测试websocket所需jar包.zip"这个压缩包文件,显然是为JMeter提供压力测试WebSocket服务所需的Java类库(jar包)。这些jar包包含了实现WebSocket测试功能所需的组件和API,使得JMeter能够模拟大量用户...

      Jmeter压力测试工具

      在"Jmeter压力测试工具"这个主题下,我们可以深入探讨以下几个关键知识点: 1. **功能介绍**: - **性能测试**:评估系统在正常和峰值负载下的响应时间,确保在高并发下稳定运行。 - **负载测试**:模拟大量用户...

      jmeter压力测试报告超细.doc

      jmeter 压力测试报告生成知识点 一、压力测试的概念和目的 压力测试是软件测试的一种方法,旨在评估系统在高负载下的性能和可靠性。该测试报告的目的在于评估 XXX 系统在高并发情况下的性能,并分析系统的瓶颈和...

      jmeter 压力测试工具

      **JMeter压力测试工具详解** JMeter是一款强大的性能测试工具,由Apache软件基金会开发,主要用于对Web应用程序进行负载和压力测试。它可以帮助开发者和测试人员评估应用在高并发情况下的性能,找出系统的瓶颈,...

      [学习笔记]JMeter压力测试及并发量计算-1

      ### JMeter压力测试及并发量计算关键知识点 #### 一、JMeter的安装与配置(Linux环境) **1. 下载JMeter** - 访问官方下载页面:`http://jmeter.apache.org/download_jmeter.cgi` - 选择适合版本进行下载。 **2....

      jmeter压力测试工具

      apache jmeter是来自国外的一款开源免费、功能强大的web压力测试工具。它是一款为负载测试功能行为和测量性能的100%纯Java应用程序,可用于测试静态和动态资源,Web动态应用程序的性能。jmeter可用于模拟服务器,...

      jmeter-压力测试报告-超细

      在IT行业中,压力测试是确保系统稳定性和性能的关键环节,而Apache JMeter是广泛应用的一款开源压力测试工具。本文将深入探讨JMeter的使用方法、重要功能以及如何进行超细粒度的压力测试报告分析。 首先,JMeter是...

      Apache JMeter压力测试示例脚本

      Apache JMeter压力测试示例脚本

      JMeter压力测试教程

      JMeter压力测试教程............

    Global site tag (gtag.js) - Google Analytics