zoukankan      html  css  js  c++  java
  • jmeter压测实践

    技巧一:命令行执行

    命令执行:指定参数,报告的存储位置

    jmeter -n -t baidu_requests_results.jmx -r -l baidu_requests_results.jtl -e -o /home/resultReport

    -n : 非GUI 模式执行JMeter

    -t : 执行测试文件所在的位置及文件名

    -r : 远程将所有agent启动用在分布式测试场景下,不是分布式测试只是单点就不需要-r

     -l : 指定生成测试结果的保存文件, jtl 文件格式

    -e : 测试结束后,生成测试报告

    -o : 指定测试报告的存放位置

    注意事项:

    1、-o 指定的文件及文件夹,必须不存在 ,否则执行会失败,对应上面的命令就是resultReport文件夹必须不存在否则报错

    2、只有自动结束才会生成测试报告,强制结束执行不会生成测试报告

    技巧二:阶梯压测

    Concurrency Thread Group和Stepping Thread Group两种线程组都可用于阶梯式加压测试,但是由于Stepping Thread Group已经不再被官方推荐使用了,我们对Concurrency Thread Group进行介绍。

    target concurrency:目标并发数

    ramp up time(min):加速时间

    ramp-up steps count:加速步骤计数

    hold target rate time(min):保持目标速度时间

    thread iterations limit:线程迭代次数限制

    log threads status into file:将线程状态记录到文件

    以上,以图形的方式展示了线程加压的过程。

    技巧三:控制请求数(QPS)压测

    Arrivals Thread Group我们可以通过该线程组达到控制请求数的目的

    target rate:目标速率,每秒钟多少个请求数

    ramp up time(sec):达到目标速率需要的时间

    ramp-up steps count:达到目标速率需要多少步

    hold target rate time(sec):保持目标速率时间

    thread iterations limit:线程迭代次数限制

    log threads status into file:将线程状态记录到文件

    concurrency limit:最大并发数限制

     

    技巧四:权重控制压测

    weighted switch controller 控制权重百分比的场景控件

     

    技巧五:调试脚本添加Debug PostProcessor

    一般是在需要添加正则(Regular Expression Extractor)、Xpath Extractor、 JSON Path Extractor等提取器的时候或者在参数化的时候,添加一个Debug PostProcessor,这样方便在调试脚本的时候,

    看是否正确的提取到了所要的信息。当然,得添加View Result Tree,因为执行脚本以后是在tree里看debug的信息

     

    技巧六:benshell使用

        JMeter在它的BeanShell中内置了变量,用户可以通过这些变量与JMeter进行交互,其中主要的变量及其使用方法如下:

    • log:写入信息到jmeber.log文件,使用方法:log.info(“This is log info!”);

    •  beanshell断言 Failure=true/false
    • ctx:该变量引用了当前线程的上下文,使用方法可参考:org.apache.jmeter.threads.JMeterContext

      ctx.getCurrentSampler(); 获取当前 sampler 请求

      ctx.getPreviousSampler(); 获取前一个 sampler 请求

      ctx.getThreadNum(); 获取当前线程的序号,从 0 开始计数

      ctx.getThread(); 获取当前线程

      ctx.getThreadGroup(); 获取当前线程组

      ctx.getProperties(); 获取所有属性

      ctx.getVariables(); 获取当前线程的所有变量

    • vars - (JMeterVariables):操作jmeter变量,这个变量实际引用了JMeter线程中的局部变量容器(本质上是Map),它是测试用例与BeanShell交互的桥梁,常用方法:

        a) vars.get(String key):从jmeter中获得变量值

        b) vars.put(String key,String value):数据存到jmeter变量中

        更多方法可参考:org.apache.jmeter.threads.JMeterVariables

    • props - (JMeterProperties - class java.util.Properties):操作jmeter属性,该变量引用了JMeter的配置信息,可以获取Jmeter的属性,它的使用方法与vars类似,但是只能put进去String类型的值,而不能是一个对象。对应于java.util.Properties。 

        a) props.get("START.HMS");  注:START.HMS为属性名,在文件jmeter.properties中定义 

        b) props.put("PROP1","1234"); 

    • prev - (SampleResult):获取前面的sample返回的信息,常用方法:

        a) getResponseDataAsString():获取响应信息

        b) getResponseCode() :获取响应code

  • 相关阅读:
    ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车按键启动和蜂鸣器报警
    ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车指定花式动作
    ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车指定花式动作
    ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车指定花式动作
    ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车前后左右综合实验
    ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车前后左右综合实验
    ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车前后左右综合实验
    asp中设置session过期时间方法总结
    asp中设置session过期时间方法总结
    ASP.NET关于Session_End触发与否的问题
  • 原文地址:https://www.cnblogs.com/unknows/p/10954737.html
Copyright © 2011-2022 走看看