zoukankan      html  css  js  c++  java
  • jmeter 系统的笔记整理【持续更新】

    一、Jmeter 的目录介绍

    1. bin目录:可执行的目录

      jmeter.bat:windows的启动文件
      jmeter.log:日志文件
      jmeter.sh:Linux的启动文件
      jmeter.properties:系统配置文件
      jmeter-server.bat :windows分布式测试要用到的服务器配置
      jmeter-serve:分布式压测要用到的服务器配置

    2. docs目录:接口文档目录

    3. extras目录:扩展插件目录

    4. lib目录:所用到的插件目录,里面都是jar包,会自动在JMETER_HOME/lib和ext目录下寻找需要的类

    5. liceses:jmeter证书目录

    6. ptinrable_docs 用户使用手册

    7. 安装插件管理器

      将plugins-manager.jar放到lib/ext下,然后重启Jmeter

    二、录制工具

    ​ blazemeter

    ​ badboy

    ​ jmeter web代理

    三、jmeter 默认内存分配

    rem The following link describes the -XX options:
    rem http://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html
    
    if not defined HEAP (
        rem See the unix startup file for the rationale of the following parameters,
        rem including some tuning recommendations
        set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m
    )
    
    • 堆的内存分配用-Xms和-Xmx

      -Xms分配堆最小内存,默认为物理内存的1/64;-Xmx分配最大内存,默认为物理内存的1/4。

    • 非堆内存分配用-XX:PermSize和-XX:MaxPermSize

      -XX:PermSize分配非堆最小内存,默认为物理内存的1/64;-XX:MaxPermSize分配最大内存,默认为物理内存的1/4。

    四、插件

    • 插件管理器

      下载地址:

      https://jmeter-plugins.org/install/Install/

      下载一个jmeter-plugins-manager-0.16.jar

      放到lib/ext目录下即可

    • python

      jmeter-functions-execute-python-script-1.0.jar  在jmeter调用python函数
      jython-standalone-2.7.0.jar JSR223 Sampler中使用jython shell
      

    五、执行

    jmeter -n -t <testplan filename> -l <listener filename>
    

    参数:

    -h 帮助 -> 打印出有用的信息并退出
    -n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
    -t 测试文件 -> 要运行的 JMeter 测试脚本文件
    -l jtl文件 -> 记录结果的文件
    -r 远程执行 -> 启动远程服务
    -H 代理主机 -> 设置 JMeter 使用的代理主机
    -P 代理端口 -> 设置 JMeter 使用的代理主机的端口号
    -j 日志文件->设置JMeter日志文件的名称
    

    实例:

    JMeter -n -t my_test.jmx -l log.jtl -H my.proxy.server -P 8000
    jmeter -n -t D:kangpcsharejmeterscript百度.jmx -l a.jtl
    

    执行步骤:

    JMeter 默认去当前目录寻找脚本文件,并把日志记录在当前目录。比如你在 C: oolsapache-jmeter-2.11in 目录下执行以上命令,JMeter 会去该目录下寻找 test.jmx 脚本并把执行结果放在该目录。如果你的脚本在其他目录,而且想要把执行结果放在另外文件夹,可以使用绝对路径告诉 JMeter。

    1. 同步/异步执行
    2. sheduler
    3. 请求出错后怎么执行

    六、线程组的八类可执行元件

    1. 配置元件(Config element)

    用于提供对静态数据的支持,CSV data Set config 可以将本地数据文件形成数据池(data pool)

    2. 定时器(Timer)

    定时器用于操作之间设置等待时间,等待时间是性能测试常用的控制客户端QPS的手段,类似LR的thinktime,jmeter定义了Bean shell timer,固定定时器,高斯定时器,等不同类型的定时器

    3. 前置处理器(Per processors)

    用于在实际的请求发出之前对请求进行处理,URL的重写,url中有sessionid一类的session信息可以通过该处理器填充发出请求的实际sessionid

    4. 后置处理器

    用于对sampler发出请求后得到的服务器响应进行处理,一般用来提取响应中特定数据(类似LR中关联)

    5. 断言(assertions)

    断言用于检查测试中得到的响应数据是否符合预期,断言一般用来设置检查点,用以保证性能测试过程中的数据交互是否与预期一致

    6. 监听器

    是用来对测试结果数据进行处理和可视化展示的一系列元件

    7. 取样器(sampler)

    取样器是性能测试中向服务器发送请求,记录详细信息,记录响应时间的最小单元,Jmter原生支持多种不同的sampler,每种不同类型的sampler可以根据设置的参数向服务器发送不同类型的请求

    8. 逻辑控制器

    逻辑控制器包括两类元件,一类是用来控制test plan 中sampler节点发送请求的逻辑控顺序的控制器,常用的有(if)控制器,switch controller,循环控制器,另一类,是用来组织可控制sampler节点的事物控制器,吞吐量控制器

    七、作用域

    • 8类可执行元件,sampler是不与其他元件发生交互作用的元件,逻辑控制器只对其子节点的取样器有效

    • jmeter中元件的作用域是靠测试计划的树形结构中元件的父子关系确定的,作用域的原则是:

      1. 取样器不和其他元件交互:不存在作用域的问题;

      2. 逻辑控制器(logic controller)元件只对子节点中的取样器和逻辑控制器作用

      3. 除取样器和逻辑控制器外,其他6类元件,如果是某个取样器的子节点,则该元件对其父子节点起作用,如果其父子节点不是取样器,则其作用域是该元件父节点下的其他所有后代节点(包括子节点,子节点的子节点)

    八、元件的执行顺序

    配置元件-前置处理器-定时器-取样器-后置处理器-断言-监听器
    执行顺序tip:
    前置处理器,后置处理器,断言等元件功能对取样器起作用,因此,如果他们的作用域内没有任何取样器,不会执行
    如果同一作用域范围内有多个同一类的元件,按照测试计划树依次进行

    九、User Defined Variables

    十、User Parameters

    更多学习笔记移步 https://www.cnblogs.com/kknote
  • 相关阅读:
    判断JS数据类型的四种方法
    JavaScript正则表达式精简
    virtio介绍
    DPDK与SRIOV应用场景及性能对比
    KVM和Xen的区别
    理解 JavaScript 闭包
    JS数组常用操作方法总结
    JavaScript中的 NaN 与 isNaN
    如何在Unity中复制多个组件并粘贴到另一个GameObject上
    Unity Umotion 导入动作发生漂移的解决办法
  • 原文地址:https://www.cnblogs.com/kknote/p/13967259.html
Copyright © 2011-2022 走看看