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:\kangpc\share\jmeter\script\百度.jmx -l a.jtl

执行步骤:

JMeter 默认去当前目录寻找脚本文件,并把日志记录在当前目录。比如你在 C:\tools\apache-jmeter-2.11\bin 目录下执行以上命令,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

posted @ 2022-04-05 19:07  我是一言  阅读(56)  评论(0编辑  收藏  举报